我有一个TI传感器标签,我尝试使用BLE与Android连接。我按照这里的说明进行操作:http://processors.wiki.ti.com/index.php/SensorTag_User_Guide#SensorTag_Android_Development并且直到最后一步才开始工作,我没有收到onCharacteristicChanged回调。注意:我确实收到一个onCharacteristicWrite回调,但之后没有。请帮忙!
起初我认为这可能是由于同步回调和&队列问题在说明书中解释,但我实现了它并没有解决问题。
我的代码的适用类别:https://github.com/bhadley/ble_testing/tree/master/src/com/example/helloworld
D/BtGatt.GattService( 771): onGetDescriptor() - address=BC:6A:29:AC:72:D9, stat
us=0, descUuid=00002901-0000-1000-8000-00805f9b34fb
D/BluetoothGatt( 3500): onGetDescriptor() - Device=BC:6A:29:AC:72:D9 UUID=000029
01-0000-1000-8000-00805f9b34fb
D/BtGatt.btif( 771): btif_gattc_get_descriptor
D/BtGatt.btif( 771): btgattc_handle_event: Event 1010
D/BtGatt.GattService( 771): onGetDescriptor() - address=BC:6A:29:AC:72:D9, stat
us=133, descUuid=00002901-0000-1000-8000-00805f9b34fb
D/BluetoothGatt( 3500): onSearchComplete() = Device=BC:6A:29:AC:72:D9 Status=0
I/BLE ( 3500): onServicesDiscovered
D/BluetoothGatt( 3500): writeCharacteristic() - uuid: f000aa32-0451-4000-b000-00
0000000000
D/BtGatt.GattService( 771): writeCharacteristic() - address=BC:6A:29:AC:72:D9
D/BtGatt.btif( 771): btif_gattc_write_char
D/BtGatt.btif( 771): btgattc_handle_event: Event 1015
D/BluetoothGatt( 3500): setCharacteristicNotification() - uuid: f000aa31-0451-40
00-b000-000000000000 enable: true
D/BtGatt.GattService( 771): registerForNotification() - address=BC:6A:29:AC:72:
D9 enable: true
D/BtGatt.btif( 771): btif_gattc_reg_for_notification
D/BtGatt.btif( 771): btgattc_handle_event: Event 1018
D/BluetoothGatt( 3500): writeDescriptor() - uuid: 00002902-0000-1000-8000-00805f
9b34fb
D/BtGatt.GattService( 771): onRegisterForNotifications() - address=null, status
=0, registered=1, charUuid=f000aa31-0451-4000-b000-000000000000
D/BtGatt.GattService( 771): writeDescriptor() - address=BC:6A:29:AC:72:D9
D/BtGatt.btif( 771): btif_gattc_write_char_descr
D/BtGatt.btif( 771): btgattc_handle_event: Event 1016
E/bt-btif ( 771): already has a pending command!!
I/BLE ( 3500): status of enabling magnetometer notifications: true
D/BtGatt.btif( 771): btif_gattc_upstreams_evt: Event 4
D/BtGatt.GattService( 771): onWriteCharacteristic() - address=BC:6A:29:AC:72:D9
, status=0
D/BluetoothGatt( 3500): onCharacteristicWrite() - Device=BC:6A:29:AC:72:D9 UUID=
f000aa32-0451-4000-b000-000000000000 Status=0
I/BLE ( 3500): onCharacteristicWrite
答案 0 :(得分:0)
感谢我收到了一些很好的帮助,我发现问题解决了我的问题:
1)需要等待传感器开启THEN启用通知(最初我是顺序调用它们而没有暂停)这导致了错误:已经有一个待处理命令!!
2)TI SensorTag通知的正确标志是BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE(之前我的标签不正确)
3)我必须实现一个队列来安排回调以防止挂起的命令回调。感谢Steven Rudenko提供了一些惊人的帮助!
数据现在通过onCharacteristicChanged回调进入!