Android等待startBluetoothSco SCO_AUDIO_STATE_CONNECTED

时间:2014-06-12 17:51:34

标签: android bluetooth wait text-to-speech

我遇到的问题是startBluetoothSco连接速度不够快。我如何等待获取SCO_AUDIO_STATE_CONNECTED返回值然后继续大声朗读我的消息。当连接状态返回时,我已经大声朗读了一半的消息。如果我睡觉,那么主要活动会停滞不前,没有任何反应。你可以告诉我,我是Android的初学者。感谢

1 个答案:

答案 0 :(得分:3)

这有点旧,但我想我会回答,因为我有同样的问题。

设置接收器:

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
        }
    }
};

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

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

this.registerReceiver(ScoReceiver, intentFilter);

然后启动SCO

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

am.setMode(AudioManager.MODE_IN_COMMUNICATION);
am.startBluetoothSco();

使用SCO完成后

am.stopBluetoothSco();