Ada*_*gyi 6 android android-bluetooth android-ble
我有一个扫描 BLE 设备的应用程序。它在 Android 10 上运行良好,但自从我将手机更新到Android 11后,如果我将应用程序置于后台或锁定屏幕,则onScanResult 永远不会被调用。
这很烦人。我还没有找到任何可能导致这种情况的合理想法。我在 Android 11 中没有发现任何表明此行为发生变化的差异。如果您将应用程序定位到 api 级别 31,则 Android 12 具有新的 BT 权限,但我确实将我的应用程序定位到 api 级别 30,并且我确实在 Android 11 上运行我的应用程序。
我完全一无所知。我尝试了不同的扫描模式,以及添加扫描过滤器,但没有任何改变。
我的扫描设置:
ScanSettings ss = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER).build();
List<ScanFilter> filterList = new ArrayList<>();
filterList.add(new ScanFilter.Builder().setManufacturerData(Constants.HARDWARE_MANUFACTURER_ID, new byte[]{}).build());
BluetoothUtil.getBluetoothLeScannerInstance().startScan(filterList, ss, leScanCallback);
Run Code Online (Sandbox Code Playgroud)
onScanResult当应用程序位于前台且设备屏幕未锁定时,通话效果良好。一旦我将应用程序推到后台或锁定屏幕,我就不再收到任何回调onScanResult
15:47:15 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:47:17 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:21 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:21 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:22 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:22 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:47:25 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:47:25 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:26 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:26 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:29 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:30 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:30 com.myapp.co I/SCANNED_: onScanResult ran!
15:47:32 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
Run Code Online (Sandbox Code Playgroud)
15:48:25 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:48:32 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:48:35 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:48:42 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:48:45 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:48:52 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:48:55 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:49:02 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:49:05 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:49:12 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:49:15 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:49:22 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:49:25 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:49:32 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
15:49:35 com.myapp.co I/BL_START: ...Starting BL scan. (Start of current window)
15:49:42 com.myapp.co I/BL_STOP: ...Finishing BL scan. (End of current window)
Run Code Online (Sandbox Code Playgroud)
正如您所看到onScanResult的,当应用程序位于前台并且屏幕未锁定时,它们会被正常调用。
什么可能导致这种情况,以及如何防止此类功能?
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |