Android等待启动BluetoothSco SCO_AUDIO_STATE_CONNECTED

标签 android bluetooth wait text-to-speech

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

最佳答案

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

设置接收器:

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并注册receiver

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();

关于Android等待启动BluetoothSco SCO_AUDIO_STATE_CONNECTED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24190838/

相关文章:

lua - 如何在 Lua 中将蓝牙与 ESP32 和 NodeMCU 结合使用

android - 通过 Android 使用 radio 或其他信号跟踪手机在现实世界中的位置

java - Android Studio蓝牙:- attempt to invoke a virtual method on a null object reference

android - 如何仅从我的 Android 应用写入 NFC 标签

android - 在android中将dng文件读取为二维像素数组

android - 如何在Android fragment中完美显示软键盘?

android - ZXingScannerView Android 6 相机权限

Android - 在继续之前等待动画完成?

java - WebDriver Wait '.until(ExpectedConditions.elementToBeClickable' 仅在我将 Thread.sleep(500) 添加到代码时有效?

java - wait() 和notify() 方法