音频设备的Android蓝牙配对

时间:2019-08-28 11:49:03

标签: android bluetooth xamarin.android

我需要从蓝牙耳机发送和读取音频。我已经实现了广播接收器来检测设备何时配对。当应用启动且设备已与手机配对时,这可以正常工作并检测设备。但是,如果我启动我的应用程序且该设备未配对,则广播接收器将不会检测到该设备随后与该设备配对的时间。我的应用启动后,如何设置接收器以检测SCO设备何时与手机配对? 这是我的广播接收器:

 public class BluetoothReceiver : BroadcastReceiver
{
    public AudioManager Audiomanager { get; set; }

    public override void OnReceive(Context context, Intent intent)
    {
        //https://www.programering.com/q/MDN5ATMwATk.html

        Android.Media.ScoAudioState state = (Android.Media.ScoAudioState)intent.GetIntExtra(AudioManager.ExtraScoAudioState, -1);

        if(state == ScoAudioState.Connected)
        {
            //record
        }
    }        
}

这就是我在非UI线程中实例化它的方式:

        private void StartAudioBroadcastReceiver()
    {
        try
        {
            AudioManager manager = (AudioManager)GetSystemService(Context.AudioService);


            m_bluetoothReceiver = new BluetoothReceiver()
            {
                Audiomanager = manager
            };

            manager.Mode = Mode.Normal;

            bool bluetoothMicAvailable = manager.IsBluetoothScoAvailableOffCall;


            if (bluetoothMicAvailable)
            {
                manager.BluetoothScoOn = true;

                RegisterReceiver(m_bluetoothReceiver, new IntentFilter(AudioManager.ActionScoAudioStateUpdated));

                manager.StartBluetoothSco();

            }
        }
        catch (Exception ex)
        {

        }

    }

0 个答案:

没有答案