Android 系统(170)----收到短信,FM外放自动切回耳机

收到短信,FM外放自动切回耳机

测试步骤:

 [步骤]
1.播放FM,声音选择扬声器播放
2.收到notification
[结果]
FM扬声器播放被关闭,声音转到耳机播放
[期望]
扬声器不应被关闭
 

问题分析:

 FM通过设置forceUse到SPEAKER,收到notification后系统会call setBluetoothScoOn(false)保证提示音不要从蓝牙耳机播出。
setBluetoothScoOn(false)会重设forceUse(FORCE_NO_BT_A2DP)导致提示音结束后APS选择耳机作为FM输出设备。
修改:
在当前FOR_MEDIA场景forceUse为SPEAKER时挡掉setBluetoothScoOn(false)。
 
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 40ab78f..86dc43c 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -3012,6 +3012,11 @@ public class AudioService extends IAudioService.Stub
.append(") from u/pid:").append(Binder.getCallingUid()).append("/")
.append(Binder.getCallingPid()).toString();

+ if(!on && AudioSystem.getForceUse(AudioSystem.FOR_MEDIA) == AudioSystem.FORCE_SPEAKER){
+ Log.d(TAG,"no need to change forceUse to FORCE_NO_BT_A2DP cause forceUse is SPEAKER");
+ return;
+ }
+
synchronized (mBluetoothA2dpEnabledLock) {
mBluetoothA2dpEnabled = on;
sendMsg(mAudioHandler, MSG_SET_FORCE_BT_A2DP_USE, SENDMSG_QUEUE,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值