Mit*_*ta_ 3 android android-sensors wearables huawei-mobile-services
我打算创建一个健身 android 应用程序。除其他事项外,我希望与可穿戴设备进行一些集成。我现在手头的设备是荣耀手环4(华为)。我还没有找到关于如何解决这个问题以及是否有可能的任何明确解释。
我的第一个想法是定期从 HuaweiHealth 应用程序获取数据并将其导入到我的内部。但是好像HuaweiHealth 应用程序与其他应用程序不兼容,因为我还没有看到访问这些数据的方法。
我遇到的另一件事是 Android Sensors API:https : //developers.google.com/fit/android/ble-sensors 我可以用它从我的 Honor Band 获取数据吗?我认为这只会让我获得原始数据,我必须处理所有逻辑才能获得准确的计步器、心率计等。
任何输入将不胜感激。
我对 Google Fit 了解不多,所以也许使用该应用程序与手表交互更容易。不过,我会在类似的场景中解释我过去是如何处理蓝牙通信的
设备使用该协议Bluetooth Low Energy进行数据传输。首先,您应该阅读协议工作原理的一般描述。一个好的开始是蓝牙 SIG 网站。
您需要知道的最重要的事情是协议中提供的软件模型是什么:每个设备都公开一个Generic Attribute Profile (GATT). 在我看来,GATT 只是一个 API:它说明设备“提供”哪些数据以及您如何从客户端使用它。您应该熟悉以下术语:
蓝牙 SIG 指定了完整的通用服务和特性列表,以及如何与它们交互。同样,所有这些信息都在他们的网站上。
因此,在开始编写与手表交互的代码之前,您需要做的是找出设备公开了哪些服务和特征。理想的情况是,您购买手表时随附的手册对此有所说明……但不幸的是,情况可能并非如此。
因此,您必须自己弄清楚。您可以做的第一件事是下载一个应用程序,让您可以连接到 BLE 设备并探索其 GATT 配置文件。我推荐LightBlue Explorer。使用它,您可以连接到手表并找出设备暴露的特性和服务。然后,您去阅读蓝牙 SIG 网站上的规范,您就拥有了开始编写代码所需的一切。
但是,BLE 设备的制造商不限于蓝牙 SIG 定义的服务和特性。他们可以创建和实施自己的。在下图中,我连接到了数字秤。如您所见,它有许多“标准”服务(用户索引、身体成分、电池服务等),但在红色方块周围,您可以看到具有五个没有名称的特征的服务。
由于该服务不是由蓝牙 SIG 定义的,您需要进行一些逆向工程(这可能非常困难和令人沮丧)来弄清楚这些特征的含义以及如何使用它们。
我所做的是下载设备的官方应用程序,启用蓝牙监听 HCI并开始以尽可能多的不同方式与设备交互。之后,我使用Wireshark打开蓝牙日志并分析蓝牙数据包传输,以尝试推断如何使用这些设备特定特性。
最后,一旦您了解蓝牙 GATT 服务器在设备中的工作方式,您就可以编写自己的应用程序来与之交互了。我强烈建议你使用一个库来实现通信,否则你会很挣扎。我见过并使用过的最好的一个是RxAndroidBle(他们有针对不同平台的其他版本的库)。
这是一个漫长的过程,我在这里写的只是一些一般信息,所以你有一个起点。
| 归档时间: |
|
| 查看次数: |
4381 次 |
| 最近记录: |