我正在为我的应用中的某些通知添加声音,如下所示:
Notification notification = ... ... notification.sound = Uri.parse(...);
当播放通知声音时,即使耳机插入手机,它也会通过扬声器播放,因此声音会在扬声器和耳机中播放 .
如果插入耳机,有没有办法只通过耳机播放声音?
现在它不可能通过 headphones 强行播放声音
注册接收者
ReceiveBroadcast receiver=new ReceiveBroadcast(); registerReceiver(receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
onReceive()代码
public void onReceive(Context context, Intent intent) { if (intent.hasExtra("state")){ if (headsetConnected && intent.getIntExtra("state", 0) == 0){ headsetConnected = false; } else if (!headsetConnected && intent.getIntExtra("state", 0) == 1){ headsetConnected = true; } } }
您可以使用 AudioManager.isWiredHeadsetOn() 检查耳机是否已插入 .
AudioManager.isWiredHeadsetOn()
你需要 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
例如:
AudioManager am1 = (AudioManager)getSystemService(Context.AUDIO_SERVICE); am1.isWiredHeadsetOn();
2 回答
现在它不可能通过 headphones 强行播放声音
看到这个谷歌问题跟踪器当插入耳机和讨论时,通过外部扬声器播放通知 .
用于检查耳机已插入
注册接收者
您可以使用
AudioManager.isWiredHeadsetOn()
检查耳机是否已插入 .你需要
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
例如: