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));
}
}