蓝牙接收器响应时间
Bluetooth Receiver response time
我有以下接收器(非常简单):
bluetoothReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) {
stopMusic();
}
}
};
ctx.registerReceiver(bluetoothReceiver, new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED));
权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
我想做的是,当 BT 耳机断开时停止音乐。它有效,但响应时间不佳 - 音乐从设备持续约一秒钟,直到接收器检测到事件。我查看了 Youtube 应用程序,发现这种情况几乎立即生效,无需从设备的扬声器播放任何音乐。知道如何让广播接收器立即检测到 ACTION_ACL_DISCONNECTED
吗?
选项 1:尝试为您正在创建的 IntentFilter 设置更高的优先级
ItentFilter intentFilter= new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
intentFilter.setPriority(999) /// highest possible priority value
ctx.registerReceiver(bluetoothReceiver, intentFilter);
优先级较高的过滤器应在应用程序代码之前执行
See the android documentation for further information.
选项 2:如果广播接收器仍然没有立即检测到 ACTION_ACL_DISCONNECTED 并且设备仍在短时间内播放音乐,您还可以尝试设置一个 intentfilter 来监听音频输出正在改变(AudioManager.ACTION_AUDIO_BECOMING_NOISY)。您也可以在此处停止设备播放音乐。
我有以下接收器(非常简单):
bluetoothReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) {
stopMusic();
}
}
};
ctx.registerReceiver(bluetoothReceiver, new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED));
权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
我想做的是,当 BT 耳机断开时停止音乐。它有效,但响应时间不佳 - 音乐从设备持续约一秒钟,直到接收器检测到事件。我查看了 Youtube 应用程序,发现这种情况几乎立即生效,无需从设备的扬声器播放任何音乐。知道如何让广播接收器立即检测到 ACTION_ACL_DISCONNECTED
吗?
选项 1:尝试为您正在创建的 IntentFilter 设置更高的优先级
ItentFilter intentFilter= new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
intentFilter.setPriority(999) /// highest possible priority value
ctx.registerReceiver(bluetoothReceiver, intentFilter);
优先级较高的过滤器应在应用程序代码之前执行
See the android documentation for further information.
选项 2:如果广播接收器仍然没有立即检测到 ACTION_ACL_DISCONNECTED 并且设备仍在短时间内播放音乐,您还可以尝试设置一个 intentfilter 来监听音频输出正在改变(AudioManager.ACTION_AUDIO_BECOMING_NOISY)。您也可以在此处停止设备播放音乐。