我想收到一个事件,用于检测蓝牙在我的设备中何时配对或未配对。
一开始我发现http://developer.android.com/reference/android/bluetooth/BluetoothServerSocket.html。
我关注了这个博客:http ://android-er.blogspot.co.il/2014/12/make-bluetooth-connection-between.html这非常有用,但是没有检测到何时建立新连接。不用说,我对蓝牙实现没有用处,我很清楚:
final BluetoothAdapter.LeScanCallback bleScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) { ... }
}
任何帮助将不胜感激。
我在想我应该找到一种方法来访问其中一个类:BluetoothBondStateMachine、BTConnectionReceiver、BluetoothBondStateMachine,这将是一个不错的开始,因为我可以在 logcat 中看到,每当创建配对/取消配对时,这些类都会检测到它。
连接到 ble 设备 "shine" :07-28 18:05:49.284 8332-8332/? I/BTConnectionReceiver﹕ onReceive(context, Intent { act=android.bluetooth.device.action.ACL_CONNECTED flg=0x4000010 cmp=com.google.android.googlequicksearchbox/com.google.android.search.core.service.BluetoothConnectionReceiver (has extras) }, [BluetoothDevice: address=F2:3F:FB:30:A1:75, alias=null, name=Shine, majorDeviceClass=7936, deviceClass=7936]
07-28 18:05:49.285 8332-8332/? I/BluetoothClassifier﹕ Bluetooth Device Name: Shine
07-28 18:05:49.830 19769-19793/? W/bt_smp﹕ smp_send_id_info
07-28 18:05:49.836 19769-19786/? I/BluetoothBondStateMachine﹕ bondStateChangeCallback: Status: 0 Address: F2:3F:FB:30:A1:75 newState: 2
07-28 18:05:49.838 19769-19787/? I/BluetoothBondStateMachine﹕ Bond State Change Intent:F2:3F:FB:30:A1:75 OldState: 11 NewState: 12
07-28 18:05:49.838 19769-19787/? I/BluetoothBondStateMachine﹕ StableState(): Entering Off State
07-28 18:05:50.564 19769-19793/? E/bt_att﹕ gatt_disc_cmpl_cback() - Register for service changed indication failure
07-28 18:05:51.189 19769-19793/? W/bt_bta_gattc﹕ bta_gattc_explore_srvc no more services found
07-28 18:05:51.191 19769-19793/? I/bt_bta_dm﹕ bta_dm_gatt_disc_result service_id_uuid_len=2