我是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) 但是该指南文档对我没有帮助。
无论如何,任何告诉我如何解决此问题的人?!?! 谢谢您阅读我的问题。
答案 0 :(得分:0)
好吧,从您的评论看来,您好像是通过BLE扫描了该设备,并希望使用其提供的一项服务来获取电池信息等信息。
首先需要建立与BLE设备的连接。 您粘贴的scanresult具有需要调用的方法getDevice
获取设备后,可以调用其connectGatt方法。这将尝试连接您的手机和BLE设备。
步骤2中的connectGatt方法需要callback。连接成功或失败后,回调将触发onConnectionStateChanged。如果成功,它将带有success status。此方法还将为您提供我们将在步骤4中使用的gatt device。
如果第3步成功,我们可以假定您的电话已连接。我们要做的下一件事是发现服务。您可以使用gatt设备discoverServices方法来做到这一点。
发现服务后,您的回调将触发onServicesDiscovered。现在,您可以使用服务了。他们希望您根据耳机的API来阅读或订阅服务特征和描述符。由于我不知道API,因此无法为您提供进一步的帮助。但是您最终将需要使用以下一项或多项:
该值将返回到您的回调。请记住,在写/读/订阅另一个特征或描述符之前,您必须等待每个请求的回调。