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,还需要显式允许应用程序持续访问位置服务。要执行此操作,应转到设置 -> 应用,选择适当的程序,打开其权限,并指定位置(如截图所示)的始终允许权限。

有关更多信息,请参阅后台访问位置的Android文档。

© 2024 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款进行许可。Qt及其相关标志是芬兰以及全球其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。