首页 文章

插入耳机时,请勿通过扬声器播放通知声音

提问于
浏览
2

我正在为我的应用中的某些通知添加声音,如下所示:

Notification notification = ...
...
notification.sound = Uri.parse(...);

当播放通知声音时,即使耳机插入手机,它也会通过扬声器播放,因此声音会在扬声器和耳机中播放 .

如果插入耳机,有没有办法只通过耳机播放声音?

2 回答

  • 4

    如果插入耳机,有没有办法只通过耳机播放声音?

    现在它不可能通过 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;
             }
         }
     }
    
  • 0

    您可以使用 AudioManager.isWiredHeadsetOn() 检查耳机是否已插入 .

    你需要 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    例如:

    AudioManager am1 = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    am1.isWiredHeadsetOn();
    

相关问题