gptAssist icon indicating copy to clipboard operation
gptAssist copied to clipboard

Voice input not working on Huawei WebView

Open hiro9511 opened this issue 5 months ago • 5 comments

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!

Image

Image

Image

hiro9511 avatar Aug 07 '25 14:08 hiro9511

The app is based ln Android WebView. If Huawei is not compatible, there is no way to fix it.

woheller69 avatar Aug 07 '25 14:08 woheller69

Possible to force only GPTAssist to use Android WebView instead of Huawei WebView?

hiro9511 avatar Aug 07 '25 15:08 hiro9511

that is a system wide setting

woheller69 avatar Aug 07 '25 16:08 woheller69

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.

edmundlaugasson avatar Aug 20 '25 09:08 edmundlaugasson

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.

woheller69 avatar Aug 20 '25 12:08 woheller69