我正在开发一个反应原生应用程序,它使用库通过蓝牙连接健康设备
https://github.com/dotintent/react-native-ble-plx
但是在连接后我尝试通过调用来获得服务,device.service()
但是出现一个错误,说没有发现服务。
现在我很困惑如何让服务 uuid 和特征 uuid 从蓝牙设备读取数据。该设备是血糖仪。
我正在开发一个反应原生应用程序,它使用库通过蓝牙连接健康设备
https://github.com/dotintent/react-native-ble-plx
但是在连接后我尝试通过调用来获得服务,device.service()
但是出现一个错误,说没有发现服务。
现在我很困惑如何让服务 uuid 和特征 uuid 从蓝牙设备读取数据。该设备是血糖仪。
抱歉,我已经得到我设备的应答服务 uuid 是 1808
我通过记录显示 00001808-0000-1000-8000-00805f9b34fb 的设备来确认它
那么这个答案的基础 如何将蓝牙 16 位服务 UUID 转换为 128 位 UUID?
我知道如何像这样将 16 位 uuid 读取为 4 位数字
或者,更简单地说,16 位属性 UUID 替换了下面的 x:
0000xxxx-0000-1000-8000-00805F9B34FB 此外,32 位属性 UUID 替换了下面的 x:
xxxxxxxx-0000-1000-8000-00805F9B34FB
然后我认为文档中的特征 uuid 参考 2A18 以获得相同的名称或描述
如该库的文档中所述
Since Android 6 to scan the app needs to have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION runtime permission. Since Android 10 only ACCESS_FINE_LOCATION is accepted by the OS.
。您需要处理 Android 运行时权限。
如果没有可用于设备的文档,则可以使用 BLE 扫描仪应用程序扫描附近的设备并以这种方式简单地获取 UUID。
有多个此类应用程序可用于 iOS 和 Android,例如nRF Connect和LightBlue。
这些不仅可以扫描 BLE 设备,还可以使用简单的读取、写入和通知操作来测试它们。