У меня есть этот метод для сканирования устройств Bluetooth LE. Сканер работает асинхронно в течение 10 секунд, а затем прерывается.
public void startScanning() {
Handler handler = new Handler();
final long SCAN_PERIOD = 10000;
handler.postDelayed(new Runnable() {
@Override
public void run() {
btScanner.stopScan(leScanCallback);
}
}, SCAN_PERIOD);
btScanner.startScan(leScanCallback);
}
Однако, в зависимости от условия, которое проверяется во время сканирования (например, я нахожу устройство, которое искал и т. Д.),Я звоню btScanner.stopScan(leScanCallback)
. Поэтому я не хочу вызывать stopScan после SCAN_PERIOD
, иначе я бы позвонил дважды. Как мне избежать второго звонка?