BLE上的制造商特定数据

时间:2018-09-16 08:33:04

标签: bluetooth bluetooth-lowenergy android-bluetooth

我是android上BLE编程的新手。

在我的第一个在Android上使用BLE的应用程序中,我遇到了一个大问题。

我使用此功能从Apple蓝牙耳机获得了ScanRecord。

@覆盖         public void onScanResult(int callbackType,ScanResult结果)

我使用Apple公司ID(0x4C)获得了制造商数据。 之后,我不知道如何解码制造商数据。

我想辅助蓝牙耳机信息,例如电池信息,方向信息等,但是我不知道如何解码制造商数据。

我还搜索了Apple开发文档(https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf) 但是该指南文档对我没有帮助。

无论如何,任何告诉我如何解决此问题的人?!?! 谢谢您阅读我的问题。

1 个答案:

答案 0 :(得分:0)

好吧,从您的评论看来,您好像是通过BLE扫描了该设备,并希望使用其提供的一项服务来获取电池信息等信息。

  1. 首先需要建立与BLE设备的连接。 您粘贴的scanresult具有需要调用的方法getDevice

  2. 获取设备后,可以调用其connectGatt方法。这将尝试连接您的手机和BLE设备。

  3. 步骤2中的connectGatt方法需要callback。连接成功或失败后,回调将触发onConnectionStateChanged。如果成功,它将带有success status。此方法还将为您提供我们将在步骤4中使用的gatt device

  4. 如果第3步成功,我们可以假定您的电话已连接。我们要做的下一件事是发现服务。您可以使用gatt设备discoverServices方法来做到这一点。

  5. 发现服务后,您的回调将触发onServicesDiscovered。现在,您可以使用服务了。他们希望您根据耳机的API来阅读或订阅服务特征和描述符。由于我不知道API,因此无法为您提供进一步的帮助。但是您最终将需要使用以下一项或多项:

该值将返回到您的回调。请记住,在写/读/订阅另一个特征或描述符之前,您必须等待每个请求的回调。