Android 等待启动BluetoothSco SCO_AUDIO_STATE_CONNECTED

use*_*299 1 android bluetooth text-to-speech wait

我遇到了 startBluetoothSco 连接速度不够快的问题。我如何等待获取 SCO_AUDIO_STATE_CONNECTED 返回值,然后继续让我的消息大声朗读。到连接状态返回时,我已经大声朗读了一半的消息。如果我睡了,那么主要活动就会停止,什么也不会发生。如您所知,我是 Android 的初学者。谢谢

Joh*_*ith 5

这有点旧,但我想我还是会回答,因为我遇到了同样的问题。

设置接收器:

ScoReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1) ==
            AudioManager.SCO_AUDIO_STATE_CONNECTED) {

            // SCO now connected
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

然后创建一个 IntentFilter 并注册接收器

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED);

this.registerReceiver(ScoReceiver, intentFilter);
Run Code Online (Sandbox Code Playgroud)

然后启动SCO

am = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);

am.setMode(AudioManager.MODE_IN_COMMUNICATION);
am.startBluetoothSco();
Run Code Online (Sandbox Code Playgroud)

当你完成使用 SCO

am.stopBluetoothSco();
Run Code Online (Sandbox Code Playgroud)