#android #bluetooth #bluetooth-lowenergy #bluetoothlescanner
Вопрос:
Моя проблема в том, что на некоторых устройствах ScanResult.getDevice()
или ScanResult.getScanRecord()
оба возвращают значение null на некоторых устройствах Android, но отлично работают на большинстве. Если я не могу getDevice()
надежно позвонить, как я могу подключиться?
Когда я смотрю на строку результатов в моем onScanResult обратного вызова, я вижу небольшую разницу между устройствами, которые работают и не работают.
Это строка результата с неисправным устройством.
{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
- Рабочее устройство Moto G7 под управлением Android 10 с Bluetooth 4.2
- Неисправное устройство RCA 7″ под управлением Android 10 с Bluetooth 4.0