将应用程序发送到后台后,Android BLE SCAN 在前台服务中的 30 秒内停止

标签 android bluetooth-lowenergy foreground-service

当我们从 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/

相关文章:

raspberry-pi - HCI LE 连接——命令不允许

java - 当我的应用程序启动前台服务时,如果用户在设置中关闭了通知权限,该服务是否处于前台?

java - 服务启动时尝试调用位置权限但应用程序崩溃

android - 前台服务会在打瞌睡模式的非唤醒时间工作吗

react-native - 在 react-native 上打印到蓝牙打印机

swift - 如何使用 BLE 获取原始心电图数据

java - 如何存储文件字节并稍后再次创建该文件?

android - android中 ListView 内的文本更改事件

android - 当互联网连接在 Android 应用程序中不可用时显示警报

Android Lollipop MediaSessionCompat 缺少 setMediaButtonReceiver(PendingIntent)