当我锁定设备屏幕时蓝牙无法工作

问题描述 投票:0回答:1

当我锁定屏幕蓝牙时遇到问题,它没有收到数据,但仍在扫描我使用 flutter_blue_plus 1.32.4 和 flutter_background_service 5.0.5 请帮助我

 <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
 <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

 <!-- legacy for Android 11 or lower -->
 <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.WAKE_LOCK" />

 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION"/>
 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>

 <!-- legacy for Android 9 or lower -->
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />
android flutter bluetooth background-service
1个回答
0
投票

如果您使用协程来处理接收到的蓝牙数据,那么如果您的设备被锁定,协程将无法运行。协程需要前台状态。

您可以使用 Google 的 WorkManager 来管理后台。因此,如果您的设备被锁定,所有蓝牙数据都会在其中进行处理和管理。

https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started

请注意,自 Android 8 起,后台进程可以运行的时间有限制(目前最长为 10 分钟)。

© www.soinside.com 2019 - 2024. All rights reserved.