BLE 连接设备与交换数据问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BLE 连接设备与交换数据问题相关的知识,希望对你有一定的参考价值。
参考技术A 最近在进行安卓APP的开发,需要通低功耗蓝牙与设备进行交互,刚刚才可以成功交互数据,在这里记录一些遇到的主要的问题。之前没有蓝牙开发的经验,所以尝试着用传统蓝牙的方式,用过BluetoothSocket与设备连接,总是报 IOException.
低功耗蓝牙与传统蓝牙的连接方式不同,低功耗蓝牙是通过BluetoothGatt,以service和characteristic的方式来交互数据的。
使用Gatt时,想要获取service或者characteristic,都是需要先知道与之对应的Uuid,这个就只能与硬件工程师做好沟通。
在与设备交互时,先要对可接受通知的characteristic a进行setCharacteristicNotification,然后对可写的characteristic b写入数据,设备收到b写入了数据,回调onCharacteristicChanged函数,返回characteristic c给APP,c里包含APP请求的数据。
做好这些事情后,向设备的某一个characteristic写数据时,onCharacteristicWrite函数成功的被回调,但是onCharacteristicChanged函数没有被回掉。这说明虽然成功的在b中写入了数据,但设备并没有调用回调函数。解决办法是在setCharacteristicNotification中订阅这个characteristic的所有descriptor。
以上是关于BLE 连接设备与交换数据问题的主要内容,如果未能解决你的问题,请参考以下文章