首页 > 解决方案 > 通过 Android 应用接收蓝牙低功耗数据

问题描述

我目前正在进行的项目涉及一个内置 BLE 和我的智能手机的体重秤。秤通过 BLE 连接到智能手机,以将当前的体重数据发送到其应用程序(我假设这是优先考虑的。)虽然我不知道如何获得正确的 UUID 以在我自己的 Android 应用程序中与秤进行通信,因为它似乎没有使用标准的 GATT 服务。这些设备似乎使用 0x2901、0x2902...0x290X

比例模型:HNY200(黑色) 比例链接:https ://www.healthometernuyu.com/nuyu-products/scales/wireless-scale/HNY200KD.html

在我的手机上使用 BLE 扫描仪后,我能够确定设备的 BLE 名称(很像网络中的 SSID)和 MAC 地址。但是,它还显示了一长串 CUSTOM SERVICE 和 CUSTOM CHARACTERISTIC 选项,每个选项都带有描述符及其属性,例如读取和写入。我会假设我正在搜索的数据(重量值)将打包在一个自定义特征中,其属性包括读取。在分析每个单独的值之后,每次的值要么是完全相同的十六进制数,要么根本没有值。没有值的有“OTA_STATUS”、“OTA_CMD”或“OTA_DATA”,但除此之外不显示任何内容。

设备的 BLE 扫描查看最有趣的特性(但不是全部):

https://imgur.com/a/iHWDoSM

我目前没有任何适用于 Android 应用程序的代码,因为我只是按照 Android 开发人员教程进行操作。然而,在之前的研究中,似乎我需要正确的 UUID,因为我可能必须对秤用来向其应用程序发送优先数据的协议进行逆向工程。一些 BLE 扫描仪可以找到比例,而有些则不能。

我希望一个特征能够显示秤上显示的重量值,但我得到了非常大的十六进制值,什么都没有,或者是一些字符串值,例如“OTA_DATA”。

标签: androidbluetooth-lowenergy

解决方案


推荐阅读