我正在使用一些BLE设备处理BLE:首先发现它然后尝试连接.但是我得到了错误:
10-03 17:17:45.641 3854-3930/? E/bt-att﹕ Unsupported transport for background connection 10-03 17:17:45.641 3854-3930/? E/bt-btif﹕ bta_gattc_init_bk_conn Failed
并且我无法连接(注意奇怪的状态133在断开连接之前(0)):
10-03 17:17:45.641 17474-18298/com.icrealtime.allie D/BluetoothGatt﹕ onClientConnectionState() - status=133 clientIf=7 device=08:00:00:3F:B5:F1
完整日志:
10-03 17:17:45.601 1029-1029/? D/STATUSBAR-WifiQuickSettingButton﹕ onWifiSignalChanged enabled=true enabledDesc:"IC" 10-03 17:17:45.611 17474-17474/com.icrealtime.allie D/BleRpcConnectionFactory﹕ Device found: name=Allie-RA222222222,mac_address=08:00:00:3F:B5:F1,other=08:00:00:3F:B5:F1 10-03 17:17:45.621 17474-17474/com.icrealtime.allie D/BleRpcConnectionFactory﹕ Found and accepted BLE device: 08:00:00:3F:B5:F1 10-03 17:17:45.621 17474-17474/com.icrealtime.allie D/BleRpcConnectionFactory﹕ Stopping discovery 10-03 17:17:45.621 17474-17474/com.icrealtime.allie D/BluetoothAdapter﹕ stopLeScan() 10-03 17:17:45.621 3854-4177/? D/BtGatt.GattService﹕ stopScan() - queue size =1 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ filter size is 1 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ delete FilterIndex - 4 10-03 17:17:45.621 1029-1029/? D/StatusBar.NetworkController﹕ refreshSignalCluster - setNWBoosterIndicators(false) 10-03 17:17:45.621 3854-3932/? D/bt_vendor﹕ op for 7 10-03 17:17:45.621 3854-3932/? D/bt_upio﹕ BT_WAKE is asserted already 10-03 17:17:45.621 3854-3929/? D/BtGatt.GattService﹕ onScanFilterParamsConfigured() - clientIf=7,status=0,action=1,availableSpace=16 10-03 17:17:45.621 3854-3929/? D/BtGatt.ScanManager﹕ callback done for clientIf - 7 status - 0 10-03 17:17:45.621 3854-3862/? D/BtGatt.GattService﹕ unregisterClient() - clientIf=7 10-03 17:17:45.621 3854-3932/? D/bt_vendor﹕ op for 7 10-03 17:17:45.621 3854-3932/? D/bt_upio﹕ BT_WAKE is asserted already 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ stop scan 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ configureRegularScanParams() - queue=0 10-03 17:17:45.621 3854-3932/? D/bt_vendor﹕ op for 7 10-03 17:17:45.621 3854-3932/? D/bt_upio﹕ BT_WAKE is asserted already 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ configureRegularScanParams() - ScanSetting Scan mode=-2147483648 mLastConfiguredScanSetting=2 10-03 17:17:45.621 17474-17474/com.icrealtime.allie D/BleRpcConnectionFactory﹕ Connecting to device 10-03 17:17:45.621 3854-4052/? D/BtGatt.ScanManager﹕ configureRegularScanParams() - queue emtpy,scan stopped 10-03 17:17:45.621 3854-3932/? D/bt_vendor﹕ op for 7 10-03 17:17:45.621 3854-3932/? D/bt_upio﹕ BT_WAKE is asserted already 10-03 17:17:45.631 1029-1029/? D/StatusBar.NetworkController﹕ applyOpen 10-03 17:17:45.631 17474-17474/com.icrealtime.allie D/BluetoothGatt﹕ connect() - device: 08:00:00:3F:B5:F1,auto: true 10-03 17:17:45.631 17474-17474/com.icrealtime.allie D/BluetoothGatt﹕ registerApp() 10-03 17:17:45.631 17474-17474/com.icrealtime.allie D/BluetoothGatt﹕ registerApp() - UUID=0b2a4a78-aaf0-4c95-832a-b94eb4513795 10-03 17:17:45.631 1029-1029/? D/StatusBar.NetworkController﹕ refreshSignalCluster - setNWBoosterIndicators(false) 10-03 17:17:45.631 1029-1029/? D/StatusBar.NetworkController﹕ applyOpen 10-03 17:17:45.631 3854-4178/? D/BtGatt.GattService﹕ registerClient() - UUID=0b2a4a78-aaf0-4c95-832a-b94eb4513795 10-03 17:17:45.641 3854-3929/? D/BtGatt.GattService﹕ onClientRegistered() - UUID=0b2a4a78-aaf0-4c95-832a-b94eb4513795,clientIf=7 10-03 17:17:45.641 17474-17488/com.icrealtime.allie D/BluetoothGatt﹕ onClientRegistered() - status=0 clientIf=7 10-03 17:17:45.641 3854-4177/? D/BtGatt.GattService﹕ clientConnect() - address=08:00:00:3F:B5:F1,isDirect=false set own addr = false own addr type:0 10-03 17:17:45.641 3854-3866/? D/BtGatt.GattService﹕ clientConnect() - address=08:00:00:3F:B5:F1,isDirect=false set own addr = false own addr type:0 10-03 17:17:45.641 3854-3929/? D/BtGatt.btif﹕ btif_get_device_type: Device [08:00:00:3f:b5:f1] type 3,addr. type 0 10-03 17:17:45.641 3854-3930/? E/bt-att﹕ Unsupported transport for background connection 10-03 17:17:45.641 3854-3930/? E/bt-btif﹕ bta_gattc_init_bk_conn Failed 10-03 17:17:45.641 1029-1029/? D/StatusBar.NetworkController﹕ refreshSignalCluster - setNWBoosterIndicators(false) 10-03 17:17:45.641 3854-3929/? D/BtGatt.btif﹕ btif_get_device_type: Device [08:00:00:3f:b5:f1] type 3,addr. type 0 10-03 17:17:45.641 3854-3930/? E/bt-btif﹕ bta_gattc_process_api_open Failed,unknown client_if: 0 10-03 17:17:45.641 3854-3929/? D/BtGatt.GattService﹕ onConnected() - clientIf=7,connId=65535,address=08:00:00:3F:B5:F1 10-03 17:17:45.641 1029-1029/? D/StatusBar.NetworkController﹕ applyOpen 10-03 17:17:45.641 17474-18298/com.icrealtime.allie D/BluetoothGatt﹕ onClientConnectionState() - status=133 clientIf=7 device=08:00:00:3F:B5:F1 10-03 17:17:45.641 17474-18298/com.icrealtime.allie D/BleRpcConnectionFactory﹕ onConnectionStateChange() 10-03 17:17:45.641 1029-1029/? D/StatusBar.NetworkController﹕ refreshSignalCluster - setNWBoosterIndicators(false) 10-03 17:17:45.641 1029-1029/? D/StatusBar.NetworkController﹕ applyOpen 10-03 17:17:45.651 17474-20038/com.icrealtime.allie D/BleRpcConnectionFactory﹕ Connection state changed from 133 to 0 for 08:00:00:3F:B5:F1 (08:00:00:3F:B5:F1)
怎么了?我确定我开始从主线程连接.
解决方法
@H_301_17@ 这是一个小小的经验,如果BLE中心处于扫描状态,可能需要在连接到外围设备之前停止扫描.我也发现了133错误,https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-5.1.1_r13/stack/include/gatt_api.h请在这里结帐,GATT_ERROR记录活动有助于调试,
./adb logcat:S bt-att:bt-btm:* BluetoothLEint:* BtGatt.ContextMap:*