如何获得原始BLE'制造商特定数据'在Android上

时间:2017-07-11 20:38:25

标签: java android bluetooth-lowenergy

基本上我在Android和iOS上有一个BLE扫描器,用于侦听我所在区域的BLE数据包。在iOS上,我得到了' advertisingData'的对象。它代表了'fCBAdvDataManufacturerData'的嵌套属性。以下列格式显示正确的数据包十六进制值: f0g219 02388 02939 02384 00000 ,例如

在Android上,在制造商对象中,我收到一个SparseArray,其中包含不同长度的数据:{6 = [42,75,-112,75,-34]}。

Android上有没有以同样的方式查看RAW广告包数据?我需要像iOS一样的十六进制值,并且无处不在寻找解决方案。

1 个答案:

答案 0 :(得分:0)

尝试下次提交代码,这样可以更轻松地查看您已经完成的工作。

  1. 首先,您需要从ScanCallBack获取scanRecord到字节数组: byte [] mScanRecord = result.getScanRecord()。getBytes();

  2. 然后创建一个包含实际广告尺寸的字符串: final StringBuilder stringBuilder = new StringBuilder(advertisementData.length);

  3. 遍历字节数组以使用char cast填充新字符串: for(byte byteChar:advertisementData){stringBuilder.append((char)byteChar);}

  4. 如果您愿意,可以将字节数组转换为字符串 String advData = stringBuilder.toString();

  5. 希望我帮助