2016-04-08 6 views
0

Я написал службу Android, которая постоянно сканирует конкретное устройство, и когда устройство обнаружено, оно подключается к устройству, считывает данные и отключается. Когда устройство снова рекламируется, служба снова делает то же самое. В целом, он работает нормально и показывает ожидаемое поведение, но если я выключу Bluetooth и снова включу его, служба не будет подключена к рекламному устройству. Я попробовал снова сканировать, как только bluetooth включен. Я также пытался подключиться к GATT, но ничего не помогает.Перезапуск сканирования BLE после перезагрузки Bluetooth (ANDROID)

ответ

0

Я понял ошибку. Это может быть полезно для других, сталкивающихся с одной и той же проблемой. Моя проблема заключалась в том, что у меня была проверка на месте в методе сканирования, чтобы гарантировать, что сканирование начнется, только если мой объект BluetoothGatt имеет значение NULL.

public void startNordicScan() { 
     if (mGatt == null) { 
      Log.d(LOGTAG, "startScan"); 
      BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); 
     scanner.startScan(mScanCallback); 
     } 
    } 

Так что, если я начинаю сканировать снова без mGatt (BluetoothGatt) объекта, устройства не будут обнаружены.

Смежные вопросы