phhusson / treble_experimentations

Notes about tinkering with Android Project Treble
3.39k stars 655 forks source link

[AOSP 10 (Quack)] [Moto G7 Power (Ocean)] Microphone disabilities during calls caused by certain sound settings #1138

Open Dondrejohnson5 opened 4 years ago

Dondrejohnson5 commented 4 years ago

Tested on AOSP 10 v210 and v212 - occured since v202/v203 (November 2019)

The microphone has been disabled on phone calls because certain sound settings required were not set. The following must be enabled for the microphone to be enabled on calls:

Outgoing calls:

Incoming calls:

Logcats:

Do Not Disturb mutes sounds such as Dial Pad tones, touch sounds and set ringtones, therefore also interfering with the functioning of the microphone during calls, for they must also be able to execute their respective sounds when enabled.

Screenshot_20200225-193757~2

phhusson commented 4 years ago

just to be clear, your tests are only on incoming calls, but issue is same for outgoing, right?

Also, is the issue the same for non-telephony calls? Like a VoIP app, or a recorder app

Dondrejohnson5 commented 4 years ago

just to be clear, your tests are only on incoming calls, but issue is same for outgoing, right?

This, at the time, was tested only on incoming calls, but in later tests, the result for outgoing calls were supposedly the same.

Also, is the issue the same for non-telephony calls? Like a VoIP app, or a recorder app

This has not yet been tested on a VoIP app such as Google Duo, but other microphone-required apps, such as the Google Assistant or the new Google Recorder, function properly.

But to add on, a recent incoming call was answered using a headset with an in-line mic with even the headset's mic not functioning on the call, even when the person was called back, although it seemed to work fine when the Google Assistant was opened

mjb6 commented 4 years ago

Hi, I can confirm the behavior on a Motorola One (deen), with lineage gsi (latest build - lineage-17.1-20200227-UNOFFICIAL-treble_arm64_bvN.img, no gapps)

No mic on incoming and outgoing calls when phone is set to DnD or vibrate, no matter if 4G, 3G or 2G, tested on both sim slots. Phone mic works when ring mode on. With a cable headset in DnD the mic does not work unless you hold the call shorty - afterwards it worked (but I tried this only once).

Other apps like recorder can always use the microphone

dhambel4 commented 4 years ago

moto g(6) here. when receiving calls while the phone is connected to bluetooth, the phone will pick up but no audio will be heard. Also, the microphone does not work when the phone is in speakerphone mode.

Dunedan commented 4 years ago

I can confirm this issue for the Motorola Moto G7 Play using AOSP vanilla v213 as well. To have a working microphone in calls (no matter of incoming or outgoing for me) I have to set a "Ring tone" volume larger than zero and enable "Touch sounds".

Calls via Bluetooth headset aren't affected by this issue for me and work even with vibrate only and "Touch sounds" disabled.

ghtmp commented 4 years ago

I've got similar problem: even with all sounds enabled the first call will be muted. Happened on incoming and outgoing calls. Next calls will be okay for some time, then it'll repeat (have no idea why). logcat_short.txt

In the log there are those 2 events around the moment of failed call:

AccountEntry: registerMmTelCapabilityCallback: registration failed, no ImsService available. Exception: CapabilityCallbackManager - MmTelFeature binder is dead. (code: 1)

CallAudioManager: Invalid route specified: 0: ICA.sAR(InCall package: com.google.android.dialer)@Lqg java.lang.IllegalStateException: CallAudioManager: Invalid route specified: 0: ICA.sAR(InCall package: com.google.android.dialer)@Lqg at android.telecom.Log.wtf(Log.java:174) at com.android.server.telecom.CallAudioManager.setAudioRoute(CallAudioManager.java:418) at com.android.server.telecom.CallsManager.setAudioRoute(CallsManager.java:2309) at com.android.server.telecom.InCallAdapter.setAudioRoute(InCallAdapter.java:311) at com.android.internal.telecom.IInCallAdapter$Stub.onTransact(IInCallAdapter.java:341) at android.os.Binder.execTransactInternal(Binder.java:1021) at android.os.Binder.execTransact(Binder.java:994)

I've seen "CallAudioManager" in the logs above, might be a clue.

edit: added full log

Dunedan commented 4 years ago

Updating to Android 10 ROM (except system of course) provided by Motorola seems to have fixed this issue for me. No workaround needed anymore. However this update introduced another bug: I can't get A2DP to work anymore (see #1404 for details), so that's something to consider before updating.