Android BLE 扫描无法解析某些设备上的 ScanRecord

问题描述

我的问题是,在某些设备上,ScanResult.getDevice()ScanResult.getScanRecord() 在某些 Android 设备上都返回 null,但在大多数设备上都可以正常工作。如果我无法可靠地调用 getDevice(),我该如何连接?

当我在回调的 onScanResult 中查看结果的 toString 时,我确实看到工作和不工作的设备之间存在细微差别。

这是带有故障设备的结果字符串。

{device=F1:6B:2E:01:43:88,scanRecord=ScanRecord [mAdvertiseFlags=5,mServiceUuids=null,mServiceSolicitationUuids=[],mManufacturerSpecificData={},mServiceData={},mTxPowerLevel=-2147483648,mDeviceName=MYDEVICE],RSSi=-38,timestampNanos=10844927511936,eventType=27,primaryPhy=1,secondaryPhy=0,advertisingSid=255,txPower=127,periodicAdvertisingInterval=0}

这是带有工作设备的结果字符串。

{device=F1:6B:2E:01:43:88,mDeviceName=MYDEVICE,**mTDSData=null**],RSSi=-65,timestampNanos=131383632077590,periodicAdvertisingInterval=0}

我注意到的一个区别是故障设备不包括 mTDSData=null

我的设置详情:

  • nrf51422 BLE 外设。
  • 编译 Android api 30 分钟 api 23
  • 运行 Android 10 和蓝牙 4.2 的工作设备 Moto G7
  • 运行 Android 10 和蓝牙 4.0 的 RCA 7" 设备出现故障

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)