我希望广播接收器监听BT设备的连接。
谁能告诉我哪些广播我要收听?
我试过了android.bluetooth.device.action.ACL_CONNECTED
,但似乎没有用。
谢谢。
答案 0 :(得分:0)
您可以使用BroadcastReceiver.onReceive()
功能中的以下内容来拉取设备:
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
答案 1 :(得分:0)
如果您正在查看设备是否“正在连接”,那么您需要android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED
但是,当设备处于STATE_CONNECTED状态时,不会触发此操作。所以我所做的就是当州连接时,在几秒钟内发送广播。
if (bluetoothAdapter
.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTING
|| bluetoothAdapter
.getProfileConnectionState(BluetoothProfile.A2DP) == BluetoothProfile.STATE_CONNECTING) {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (bluetoothAdapter
.getProfileConnectionState(BluetoothProfile.HEADSET) != BluetoothProfile.STATE_CONNECTING
|| bluetoothAdapter
.getProfileConnectionState(BluetoothProfile.A2DP) != BluetoothProfile.STATE_CONNECTING) {
context.sendBroadcast(new Intent(
BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED));
}
}
}, 2000);
有点hackish,这就是我在Android缺陷跟踪器中发布此问题的原因。 http://code.google.com/p/android/issues/detail?id=25957