在SDK 29中,我无法获得位置的 "Allow all the time "提示。我已经在清单中设置了这些权限。
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
它只返回 "当应用程序打开时 "和 "拒绝 "两个选项。
有什么想法,如何在SDK 29中显示它。
为了在后台访问Android 10(API级别29)或更高版本的设备上的位置,你还需要在manifest文件中使用以下权限:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
请参考以下链接了解更多信息
https:/developer.android.comtraininglocationrequest-updates?hl=fr。
添加权限 ACCESS_BACKGROUND_LOCATION
的清单中。在android 10及以上版本中,需要显示总是允许选项。
请看第二点 https:/developer.android.comtraininglocationbackground#评价。
我发现仅仅在清单中添加权限是不够的。我必须提供一个选项让用户在启动时授予它,就像我需要为ACCESS_FINE_LOCATION做的那样。有趣的是,当我检查后台权限是否已经在应用中被授予时,它从未给出false。但如果我不检查,我就不会得到 "Allow all the time "的选项。这是在一个Android Pixel 2版本10上。
只有在Android的10多个版本中才需要。请求这两个权限让用户在对话框中进行选择......当然用户可能不会选择 "一直"。对此,我们也无能为力