Android BLE问题:不支持的传输用于后台连接

前端之家收集整理的这篇文章主要介绍了Android BLE问题:不支持的传输用于后台连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一些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)

怎么了?我确定我开始从主线程连接.

解决方法

这是一个小小的经验,如果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:*

猜你在找的Android相关文章