当前位置: 首页 > 知识库问答 >
问题:

在androidLollipop中提取BLE的制造数据

陶飞鸿
2023-03-14

在Lollipop版本中,扫描结果方法返回BLE的所有详细信息,如地址、名称扫描记录、rssi等。我在制造数据字段中广播了一些数据。我尝试使用getScanRecord()。getManufacturersspecificdata()以单独提取制造数据并存储字符串中,但他们使用了稀疏数组来存储数据。是否有任何方法可以单独从该数组中提取数据。

下面是LOGCAT数据:

12-05 17:31:39.101:I/ScanningMode(31818):找到设备名称为:DA14580-01的广告,设备绑定状态为:12,设备地址:80:EA:CA:00:00:01,设备类型:2,设备蓝牙类:1f00,RSSI:-86,扫描记录:ScanRecord[mAd tiseFlags=6,mServiceUuids=null,mModelurerSpecificData={514=[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]},mServiceData={},mTxPowerLevel=-2147483648,mDeviceName=DA14580-01],服务数据:{},tx级别:-2147483648

当我尝试使用

System.out.println("scan value :"+result.getScanRecord().getManufacturerSpecificData());

我在logcat中得到这样的结果:

12-05 17:31:39.102: I/System.out(31818):扫描值:{514=[B@61ce5dc}

有人能告诉我如何单独获取数据吗(这里我应该只获取2、2、2、2、2、2、2、2、2、2、2、2)

我还广播了来自BLE设备的14个数据包,但日志猫只显示12个数据包。

共有1个答案

后焕
2023-03-14

虽然我没有使用. get制造商规范数据()。我已经手动从扫描记录中挑选数据,显然它应该是动态完成的,但在我的情况下,我知道数据会在同一个地方。

我将scanRecord从字节转换为十六进制,并将其存储为字符串,然后我使用substring来挑选所需的数据。

 String advertData = DataManipulation.bytesToHex(scanRecord);
 if (advertData.contains(iBeaconIdentity)){
    String majorV = adData.substring(50, 54);

希望这能给你指明正确的方向。

 类似资料:
  • 在BLE制造商数据中,当从字节转换为字符串时,我得到如下数据: JLG BLE ��������ÿSPH90234380,100084 ,������������������. 即使是从字节到十六进制再到十六进制到字符串的转换,也只能像这样打印。 十六进制格式: 0201608084A4C4720424C45020A0A0FFF5307043734353393600000015FF53075048

  • 我是android上BLE编程的新手。 在我第一次在android上使用BLE的应用程序中,我遇到了一个大问题。 我使用这个功能从苹果蓝牙耳机获得了一个扫描记录。 @重写公共void onScanResult(int callbackType,ScanResult结果) 我使用Apple corp, ID(0x4C)获得了制造商数据。之后,我不知道如何解码制造商数据。 我想获取蓝牙耳机的辅助信息,

  • 我是android新手,所以,基本上我正在开发一个应用程序,它可以从ble设备获取数据,以便对其进行进一步的操作。我到目前为止所做的:- 我扫描了设备,得到了它们的rssi和macaddress,但当我试图在回调方法中获取scanRecord时,为了访问制造商数据,我得到了如下sparseArray:- 但是我想要的是这样,

  • 问题内容: python中是否有复制构造函数?如果没有,我将怎么做才能达到类似的目的? 情况是,我正在使用一个库,并且在其中扩展了其中一个类,并提供了额外的功能,我希望能够将从库中获得的对象转换为自己的类的实例。 问题答案: 我想你想要复制模块 您可以像控制泡菜一样控制复印。

  • 如何在objective C或swift中获取设备的MAC地址。有没有办法从“标识符”字段获取MAC地址。

  • 问题内容: 因此,如果我有输入的整数: 我如何解析数字并获得1、2和8,并将它们分配给不同的变量? 谢谢! 问题答案: 这样做的低效方法是将整数转换为字符串,然后迭代字符串字符。 更有效的方法是: