android - 如何在 Android 通话期间监听音频路由的变化

标签 android audio bluetooth call

我似乎无法弄清楚如何检测用户何时更改通话中的音频路由方式。具体来说,监听用户何时在通过蓝牙耳机路由的音频和设备听筒之间切换。有人可以指导我举个好例子吗? 谢谢。

最佳答案

在 onCreate 或 onStartCommand 中

MyBroadcastReceiver myReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED);
registerReceiver(myReceiver, filter);

在onDestroy中

unregisterReceiver(myReceiver);

广播接收者类

private class MyBroadcastReceiver extends BroadcastReceiver {       
    @Override 
    public void onReceive(Context context, Intent intent) {         
        if(intent.getAction().equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)){
            int state = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,-1);
            switch(state){
            case BluetoothHeadset.STATE_AUDIO_CONNECTED:
                Log.d(TAG,"Bluetooth connected");
                break;
            case BluetoothHeadset.STATE_AUDIO_DISCONNECTED:
                Log.d(TAG,"Bluetooth disconnected");
                break;
            }
        }   
    }   
}

关于android - 如何在 Android 通话期间监听音频路由的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028229/

相关文章:

android - Android:Android Studio中的Gradle错误

audio - 使用Wolfram播放功能

c# - C# 中的蓝牙库

iphone - iOS 7 多人连接流音频

Android 设备未从 Amazon SNS 接收 GCM 通知

android - 如何为 Android 开发增强现实应用程序

android - UnsatisfiedLinkError AudioRecordNew

audio - 重新采样为12位PCM声音?

iOS Core蓝牙无法通过特性传输数据

android - 如何在Android中进行相机预览?