我的问题是在某些设备上,在某些 Android 设备上ScanResult.getDevice()
或两者都返回 null,但在大多数设备上都可以正常工作。ScanResult.getScanRecord()
如果我不能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, scanRecord=ScanRecord [mAdvertiseFlags=5, mServiceUuids=null, mServiceSolicitationUuids=[], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=MYDEVICE, **mTDSData=null**], rssi=-65, timestampNanos=131383632077590, eventType=27, primaryPhy=1, secondaryPhy=0, advertisingSid=255, txPower=127, periodicAdvertisingInterval=0}
我注意到的一个区别是故障设备不包括mTDSData=null
我的设置的详细信息:
- nrf51422 BLE 外设。
- 编译 Android api 30 分钟 api 23
- 运行带有蓝牙 4.2 的 Android 10 的工作设备 Moto G7
- 运行带有蓝牙 4.0 的 Android 10 的失败设备 RCA 7"