Voice input not working on Huawei WebView
Describe the issue I'm using [your app name, e.g. GPTAssist] on a Huawei device with HarmonyOS 4.2.0 (Android 12-based) and MicroG (v0.3.9.250932). Voice input does not work. The microphone button is displayed, but no voice is recognized.
Device Info
- Device: Huawei Mate X5
- OS: HarmonyOS 4.2.0 (Android 12-based)
- MicroG: v0.3.9.250932
- WebView: Huawei WebView (can't change it without ADB)
What I tried
- Microphone permission: granted
- Checked MicroG GSF ID: valid
- Installed Google Speech Services: still not working
- Can't change WebView provider due to device restrictions
- Voice input works on Chrome browser, but not in WebView-based apps
Expected behavior Voice input should work within the app or embedded WebView just like it does in Chrome.
Possible cause I suspect Huawei WebView may not support voice input, or MicroG might not fully support Google's voice API.
Question
- Is there a way to enable voice input in this environment?
- Can I force the app to use Chrome WebView?
- Any workaround for Huawei + MicroG users?
Thanks for your help!
The app is based ln Android WebView. If Huawei is not compatible, there is no way to fix it.
Possible to force only GPTAssist to use Android WebView instead of Huawei WebView?
that is a system wide setting
Same issue with /e/OS 3.0.4 (corresponds to Android 15) and MicroG 0.3.6.244735-17 (049740c) on Fairphone 6. Voice assistant will open with trembling clouds in circle, microphone permission is given, I speak but no response comes.
ChatGPT explanation:
Yes, there are differences between the WebView in /e/OS and the one in stock Android, and that affects microphone and camera use.
Here’s what’s going on:
1. WebView implementation in /e/OS
- /e/OS does not ship with Google’s proprietary Android System WebView.
- Instead, it uses the AOSP WebView or sometimes a "de-Googled" Chromium-based WebView (depending on the version of /e/OS you’re running).
- The AOSP WebView often lags behind Google’s WebView in feature parity and permissions support, particularly for WebRTC, microphone, and camera APIs.
2. Permission handling
- On standard Android with Google WebView, microphone/camera access via
navigator.mediaDevices.getUserMedia()works reliably, with runtime permission prompts. - In AOSP WebView, microphone and camera support is often disabled or incomplete, unless the WebView build is compiled with the right WebRTC flags enabled.
- Some builds of /e/OS ship their WebView without full WebRTC audio/video support for privacy reasons, meaning the microphone will simply never activate in embedded WebView apps.
3. Workarounds
If you need microphone access inside a WebView on /e/OS, you have a few options:
- Use a standalone browser app (like Bromite, Mull, or Chromium-based browsers included in /e/OS), which typically have working WebRTC support.
- Replace the system WebView: You can try installing Chromium WebView (from F-Droid or Aurora Store) and set it as the system WebView in Developer options → WebView implementation.
- App-side workaround: If you’re developing the app, you may need to explicitly handle permissions with
WebChromeClient.onPermissionRequest()and ensure microphone permission (RECORD_AUDIO) is granted at the Android level. But if the WebView build lacks WebRTC support, this still won’t help.
✅ In short: Yes, /e/OS WebView is different — it uses a de-Googled AOSP build that often lacks proper microphone support. To get microphone working in WebView, you’ll likely need to switch the WebView implementation to Chromium or run the site in a full browser instead.