Android Q中在前台服务中使用后台权限的位置 vs 仅在应用程序中使用权限

3
我正在验证我的应用程序与Android Q的位置服务兼容性,但我不太确定我的应用程序会有什么反应,因为在我的测试中,当授予后台权限与仅在应用程序运行时授予权限时没有区别。
根据Q迁移文档中的声明:
除非应用程序的一个活动可见或应用程序正在运行前台服务,否则应用程序被视为处于后台状态。
由于位置服务是前台服务,所以在这种情况下权限的差异是否有意义?
2个回答

4
这是一个有点棘手的问题。
在Android Q上运行位置前台服务时,需要“当应用程序运行”权限+在清单中声明该前台服务为位置类型。您的应用程序不需要后台权限。
如果您的应用程序请求后台权限,用户可能会怀疑并拒绝任何位置权限:(因此,不建议要求用户授予您不需要的权限。
强烈建议观看谷歌IO大会的这个视频:更新您的应用程序以适应Android Q中的位置权限更改(Google I/O'19) 您可以在此处阅读更多信息:文档 并且您可以在GitHub上查看Google位置更新Q的前台服务示例项目:LocationUpdatesForegroundService

3
你只需要运行前台服务而非后台服务,否则当前台没有活动时,后台服务启动时你的应用程序将会崩溃。

2
请提供更多细节。就我个人而言,我已经更好地帮助了@Hadas的答案。 - hb0
https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification) - Dmytro Batyuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接