基本上我在Android和iOS上有一个BLE扫描器,用于侦听我所在区域的BLE数据包。在iOS上,我得到了' advertisingData'的对象。它代表了'fCBAdvDataManufacturerData'的嵌套属性。以下列格式显示正确的数据包十六进制值: f0g219 02388 02939 02384 00000 ,例如
在Android上,在制造商对象中,我收到一个SparseArray,其中包含不同长度的数据:{6 = [42,75,-112,75,-34]}。
Android上有没有以同样的方式查看RAW广告包数据?我需要像iOS一样的十六进制值,并且无处不在寻找解决方案。
答案 0 :(得分:0)
尝试下次提交代码,这样可以更轻松地查看您已经完成的工作。
首先,您需要从ScanCallBack获取scanRecord到字节数组: byte [] mScanRecord = result.getScanRecord()。getBytes();
然后创建一个包含实际广告尺寸的字符串: final StringBuilder stringBuilder = new StringBuilder(advertisementData.length);
遍历字节数组以使用char cast填充新字符串: for(byte byteChar:advertisementData){stringBuilder.append((char)byteChar);}
如果您愿意,可以将字节数组转换为字符串 String advData = stringBuilder.toString();
希望我帮助