java如何在Android上获取原始BLE“特定于制造商的数据”
基本上,我在Android和iOS上有一个BLE扫描仪,在我所在的区域监听BLE数据包。在iOS上,我得到了一个“advertisementData”对象,它表示“fCBAdvDataManufacturerData”的嵌套属性,该属性以如下格式显示正确的数据包十六进制值:f0g219 02388 02939 02384 00000
在Android上,在manufacturer对象中,我接收到一个SparseArray,其中包含以下数据:{6=[42,75,-112,75,-34]}长度不同
Android上是否也有以同样方式查看原始广告包数据的功能?我需要十六进制值,就像iOS一样,并且到处寻找解决方案
# 1 楼答案
下次尝试提交代码,这将使查看您已经完成的工作更加容易
首先,需要将scanRecord从ScanCallBack获取到字节数组中: 字节[]mScanRecord=结果。getScanRecord()。getBytes()
然后创建一个具有实际广告大小的字符串: 最终StringBuilder StringBuilder=新StringBuilder(advertisementData.length)
检查字节数组,使用字符转换填充新字符串: for(byte byteChar:advertisementData){stringBuilder.append((char)byteChar);}
如果愿意,可以将字节数组转换为字符串 String advData=stringBuilder。toString()
希望我能帮忙