@Test public void stopScanTest() throws Exception { application.grantPermissions(Manifest.permission.ACCESS_COARSE_LOCATION); central.scanForPeripherals(); verify(scanner).startScan(anyList(), any(ScanSettings.class), any(ScanCallback.class)); Field field = BluetoothCentral.class.getDeclaredField("defaultScanCallback"); field.setAccessible(true); ScanCallback scanCallback = (ScanCallback) field.get(central); central.stopScan(); verify(scanner).stopScan(scanCallback); central.stopScan(); verify(scanner, times(1)).stopScan(any(ScanCallback.class)); }
public void stopScan() { cancelTimeoutTimer(); if (isScanning()) { bluetoothScanner.stopScan(currentCallback); Timber.i("scan stopped"); } else { Timber.i("no scan to stop because no scan is running"); } currentCallback = null; currentFilters = null; scannedPeripherals.clear(); }
BluetoothCentral { public void stopScan() { cancelTimeoutTimer(); if (isScanning()) { bluetoothScanner.stopScan(currentCallback); Timber.i("scan stopped"); } else { Timber.i("no scan to stop because no scan is running"); } currentCallback = null; currentFilters = null; scannedPeripherals.clear(); } }
BluetoothCentral { public void stopScan() { cancelTimeoutTimer(); if (isScanning()) { bluetoothScanner.stopScan(currentCallback); Timber.i("scan stopped"); } else { Timber.i("no scan to stop because no scan is running"); } currentCallback = null; currentFilters = null; scannedPeripherals.clear(); } BluetoothCentral(@NotNull Context context, @NotNull BluetoothCentralCallback bluetoothCentralCallback, @NotNull Handler handler); }
BluetoothCentral { public void stopScan() { cancelTimeoutTimer(); if (isScanning()) { bluetoothScanner.stopScan(currentCallback); Timber.i("scan stopped"); } else { Timber.i("no scan to stop because no scan is running"); } currentCallback = null; currentFilters = null; scannedPeripherals.clear(); } BluetoothCentral(@NotNull Context context, @NotNull BluetoothCentralCallback bluetoothCentralCallback, @NotNull Handler handler); void close(); boolean setScanMode(int scanMode); void scanForPeripheralsWithServices(@NotNull final UUID[] serviceUUIDs); void scanForPeripheralsWithNames(@NotNull final String[] peripheralNames); void scanForPeripheralsWithAddresses(@NotNull final String[] peripheralAddresses); void scanForPeripheralsUsingFilters(@NotNull List<ScanFilter> filters); void scanForPeripherals(); void stopScan(); boolean isScanning(); void connectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void autoConnectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void cancelConnection(@NotNull final BluetoothPeripheral peripheral); void autoConnectPeripheralsBatch(@NotNull Map<BluetoothPeripheral, BluetoothPeripheralCallback> batch); @NotNull BluetoothPeripheral getPeripheral(@NotNull String peripheralAddress); @NotNull List<BluetoothPeripheral> getConnectedPeripherals(); boolean isBluetoothEnabled(); boolean setPinCodeForPeripheral(@NotNull String peripheralAddress, @NotNull String pin); boolean removeBond(@NotNull String peripheralAddress); void startPairingPopupHack(); }
BluetoothCentral { public void stopScan() { cancelTimeoutTimer(); if (isScanning()) { bluetoothScanner.stopScan(currentCallback); Timber.i("scan stopped"); } else { Timber.i("no scan to stop because no scan is running"); } currentCallback = null; currentFilters = null; scannedPeripherals.clear(); } BluetoothCentral(@NotNull Context context, @NotNull BluetoothCentralCallback bluetoothCentralCallback, @NotNull Handler handler); void close(); boolean setScanMode(int scanMode); void scanForPeripheralsWithServices(@NotNull final UUID[] serviceUUIDs); void scanForPeripheralsWithNames(@NotNull final String[] peripheralNames); void scanForPeripheralsWithAddresses(@NotNull final String[] peripheralAddresses); void scanForPeripheralsUsingFilters(@NotNull List<ScanFilter> filters); void scanForPeripherals(); void stopScan(); boolean isScanning(); void connectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void autoConnectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void cancelConnection(@NotNull final BluetoothPeripheral peripheral); void autoConnectPeripheralsBatch(@NotNull Map<BluetoothPeripheral, BluetoothPeripheralCallback> batch); @NotNull BluetoothPeripheral getPeripheral(@NotNull String peripheralAddress); @NotNull List<BluetoothPeripheral> getConnectedPeripherals(); boolean isBluetoothEnabled(); boolean setPinCodeForPeripheral(@NotNull String peripheralAddress, @NotNull String pin); boolean removeBond(@NotNull String peripheralAddress); void startPairingPopupHack(); static final int SCAN_FAILED_ALREADY_STARTED; static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED; static final int SCAN_FAILED_INTERNAL_ERROR; static final int SCAN_FAILED_FEATURE_UNSUPPORTED; static final int SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES; static final int SCAN_FAILED_SCANNING_TOO_FREQUENTLY; }