Qt 在 Android 上的定位¶
在Android上使用Qt定位的注意事项
在Android服务中使用Qt定位¶
从服务中使用Qt定位需要采取几项额外操作,具体取决于Android版本。以下部分提供了有关这些操作的更多详细信息。
注意
自Android 8(API级别26)以来,操作系统限制了应用程序在后台运行时获取用户当前位置的频率。应用程序通常每小时只能接收几次位置更新。有关更多信息,请参阅后台位置限制。
使用前台服务¶
自Android 8(API级别26)起,当应用程序进入后台时,Android操作系统可以终止后台服务。这通常发生在后台运行大约一分钟后。为了保持位置服务的运行,服务应实现为前台服务。这种服务会显示一个状态栏通知,直到服务停止或从前台移除,该通知才会消失。这使得用户始终能够意识到重要的后台活动。
注意
自 Android 9(API 级别 28)起,前台服务需要特殊的 FOREGROUND_SERVICE 权限。有关实现前台服务的更多详细信息,请参阅 Android 文档。
使用后台位置权限¶
自 Android 10(API 级别 29)起,服务必须请求 ACCESS_BACKGROUND_LOCATION 权限。应将其添加到 AndroidManifest.xml 文件中,如下所示:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
注意
一旦权限被添加到AndroidManifest.xml中,仍然需要明确允许应用程序持续访问位置服务。为此,应导航到设置 -> 应用,选择适当的应用程序,打开其权限,并为位置指定“始终允许”权限(见下面的截图)。
查看Access Location in the Background Android文档以获取更多详细信息。