我正在验证我的位置服务与Android Q的兼容性,但是我有点不确定我的应用程序将如何反应,因为在测试中,我发现授予后台权限与仅在应用程序运行时没有区别。
从Q迁移文档中删除此声明
除非其中一个应用程序被认为处于后台, 活动可见或该应用程序正在运行前台服务。
由于位置服务是前台服务,因此在这种情况下权限差异是否重要?
答案 0 :(得分:3)
这是一个棘手的问题。
在Q上运行位置前台服务时,您需要“应用运行时”权限+,以在清单中声明此前台服务的类型为location。您的应用无需后台许可。
如果您的应用确实要求后台许可,则用户可能会变得可疑并拒绝任何位置许可:(因此,建议您不要向用户询问不需要的许可。
强烈建议您通过Google IO观看此视频:Updating Your Apps for Location Permission Changes in Android Q (Google I/O'19)
您可以在此处了解有关t的更多信息:documantation
您可以在GitHub上查看googles示例项目,以在Q上使用前台服务更新Q:LocationUpdatesForegroundService
答案 1 :(得分:2)
您只需要运行前台服务而不是后台即可。否则,前台没有任何活动时,您的应用将在后台服务启动期间崩溃