有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    下次尝试提交代码,这将使查看您已经完成的工作更加容易

    1. 首先,需要将scanRecord从ScanCallBack获取到字节数组中: 字节[]mScanRecord=结果。getScanRecord()。getBytes()

    2. 然后创建一个具有实际广告大小的字符串: 最终StringBuilder StringBuilder=新StringBuilder(advertisementData.length)

    3. 检查字节数组,使用字符转换填充新字符串: for(byte byteChar:advertisementData){stringBuilder.append((char)byteChar);}

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

    希望我能帮忙