private void startScan()

in rx-central-ble/src/main/java/com/uber/rxcentralble/core/scanners/ThrottledLollipopScanner.java [135:167]


  private void startScan(int scanMode) {
    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
    if (adapter != null && adapter.isEnabled()) {
      // Add a dummy filter to avoid Android 8.1+ enforcement of filters during background isScanning.
      List<ScanFilter> filters = new ArrayList<>();
      ScanFilter.Builder scanFilterBuilder = new ScanFilter.Builder();
      filters.add(scanFilterBuilder.build());

      ScanSettings.Builder settingsBuilder = new ScanSettings.Builder();
      settingsBuilder.setScanMode(scanMode);

      BluetoothLeScanner bleScanner = adapter.getBluetoothLeScanner();
      if (bleScanner != null) {
        bleScanner.startScan(filters, settingsBuilder.build(), scanCallback);
      } else {
        if (RxCentralLogger.isError()) {
          RxCentralLogger.error("startScan - BluetoothLeScanner is null!");
        }

        getErrorSubject().onError(new ConnectionError(SCAN_FAILED));
      }
    } else {
      if (RxCentralLogger.isError()) {
        if (adapter == null) {
          RxCentralLogger.error("startScan - Default Bluetooth Adapter is null!");
        } else {
          RxCentralLogger.error("startScan - Bluetooth Adapter is disabled.");
        }
      }

      getErrorSubject().onError(new ConnectionError(SCAN_FAILED));
    }
  }