我将此权限放入清单文件中。
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
这是开始扫描方法。当屏幕打开时,扫描工作正常。但是,当屏幕关闭时,扫描会停止,并在屏幕再次打开时恢复。
我试过这个solution https://stackoverflow.com/questions/48077690/ble-scan-is-not-working-when-screen-is-off-on-android-8-1-0/48112217?noredirect=1#comment83204570_48112217但仍然面临同样的问题。
void startScan() {
if (!mScanning) {
final BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
final ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).setReportDelay(0).setUseHardwareBatchingIfSupported(false).setUseHardwareFilteringIfSupported(false).build();
ScanFilter.Builder builder = new ScanFilter.Builder();
builder.setServiceUuid(new ParcelUuid(THINGY_BASE_UUID));
ScanFilter filter = builder.build();
final List<ScanFilter> filters = new ArrayList<>();
filters.add(filter); // Add Filter using UUID
scanner.startScan(filters, settings, scanCallback);
mScanning = true;
}
}
这是获取扫描结果的回调方法。
private ScanCallback scanCallback = new ScanCallback() {
@Override
public void onScanResult(final int callbackType, final ScanResult result) {
// do nothing
Log.e("MainActivity", "onScanResult: " + result.getDevice().getName());
}
@Override
public void onBatchScanResults(final List<ScanResult> results) {
Log.e("MainActivity", "onBatchScanResults: " + results.size());
}
@Override
public void onScanFailed(final int errorCode) {
// should never be called
}
};
如果您正在使用nordic scanning library
尝试这个:
private void scan(){
scanner = BluetoothLeScannerCompat.getScanner();
ScanSettings settings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).setReportDelay(10)
.setCallbackType(DEFAULT_KEYS_SEARCH_GLOBAL)
.setUseHardwareBatchingIfSupported(false).build();
List<ScanFilter> filters = new ArrayList<>();
scanner.startScan(filters, settings, mScanCallback);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)