当我们从 targetSDKVersion 31 (Android 12) 定位应用程序并尝试在应用程序处于后台时进行扫描时,我们在应用程序的 ForegroundService 中实现了 BLE 扫描,扫描在 30 秒后停止..
注意:- 我们已经使用了权限
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-feature android:name="android.hardware.bluetooth" android:required="true"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
<uses-permission android:name="android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
<permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"
android:protectionLevel="signature|privileged|vendorPrivileged|oem|verifier" />
我们是否需要更改扫描方式或者添加任何权限或设置???
请帮忙
最佳答案
如果您想在后台扫描,则需要将ACCESS_BACKGROUND_LOCATION添加到您的权限中(在 list 文件中和运行时)。在后台扫描时还有一些其他限制;下面的文章很好地涵盖了这些问题以及如何暂时克服它们:-
关于将应用程序发送到后台后,Android BLE SCAN 在前台服务中的 30 秒内停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75182551/