android - 在 Android 中,如何在有线耳机和 A2DP BT 耳机之间切换?

标签 android bluetooth headset

在我的应用中,我允许用户在内部听筒扬声器、免提电话和立体声 BT (A2DP) 耳机之间切换音频输出。如果插入有线耳机,则无法选择内置扬声器或 A2DP。无论哪种方式,声音都会通过有线耳机播放。有什么办法可以强制通过蓝牙耳机播放吗?

使用 API 5 及更高版本,所有隐式设置音频路径的方法都已弃用,因此我想不出办法来执行此操作。任何帮助将不胜感激。

谢谢。

最佳答案

如果插入有线耳机 + BT 耳机,则可以切换到内部扬声器(如果您指的是 android 设备扬声器)或有线耳机

    AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);

    // true - switch to internal speakers; false - to wired headsets
    audioManager.setSpeakerphoneOn(true);


    mMediaPlayer = MediaPlayer.create(AudioTests.this, R.raw.test_cbr);
    mMediaPlayer.start();

但在这种情况下,切换到 BT 耳机是个问题。此代码无助于切换到

    // instead of audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(0);
    audioManager.setBluetoothScoOn(true);
    audioManager.startBluetoothSco();

关于android - 在 Android 中,如何在有线耳机和 A2DP BT 耳机之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260005/

相关文章:

android - 在 Android 4.2 中写入全局设置

android - 嵌套 ListView 仅首先运行 getView()

android - 带分页的 TableLayout

android - 在 View 寻呼机中查看上一个 View 和下一个 View 之间的重叠

c# - 蓝牙文件发送

ios - Sonoff 快速配对模式如何工作?

ios - iPhone 11 和/或 iOS 13 的 iBeacon 监控/测距问题

android - 如何拦截蓝牙耳机的通话按钮?

java - 带耳机的蓝牙安卓服务器客户端

android - 广播接收器最高优先级不工作