gpt4 book ai didi

android - targetSdkVersion 30 的 ActivityCompat.requestPermissions 不起作用

转载 作者:行者123 更新时间:2023-12-03 16:47:46 25 4
gpt4 key购买 nike

我有以下权限:

private static final String[] LOCATION_PERMISSIONS = {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
};
我尝试使用以下行在我的代码中请求权限( Activity 是我当前的 Activity 引用):
ActivityCompat.requestPermissions(activity, LOCATION_PERMISSIONS, 1);
如果我有 targetSdkVersion 29,一切正常在我的 build.gradle 文件中或更低。出现权限对话框,我可以按其中的按钮授予权限。一切都很好
但!在我将目标 SDK 更改为 Android 11 后: targetSdkVersion 30此功能停止工作。
权限系统对话框未出现 - 我无法为我的应用授予位置权限。
那么有人可以帮助我吗?我错了什么?
为了正确使用 Android 11,我应该在代码中进行哪些更改?
现在与 targetSdkVersion 29我也可以在 android 11 模拟器下运行我的应用程序。可能我根本不应该将目标 sdk 版本增加到:30?

解决方案是:
第 1 步:应用程序应请求前台位置权限:
private static final String[] FOREGROUND_LOCATION_PERMISSIONS = {
Manifest.permission.ACCESS_FINE_LOCATION, // GPS
Manifest.permission.ACCESS_COARSE_LOCATION, // GPS approximate location
};
第 2 步:应用程序应请求后台位置权限:
@RequiresApi(api = Build.VERSION_CODES.Q)
private static final String[] BACKGROUND_LOCATION_PERMISSIONS = {
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
};
只能按这个顺序!
ActivityCompat.requestPermissions(activity, FOREGROUND_LOCATION_PERMISSIONS, 1);
// Check the first statement grant needed permissions, and then run the second line:
ActivityCompat.requestPermissions(activity, BACKGROUND_LOCATION_PERMISSIONS, 1);
如果我首先尝试请求后台许可 - 它不会起作用。
如果我只请求后台权限(没有已授予前台权限)-它将不起作用。
我应该请求前台权限 - 然后我应该请求后台权限 - 一个接一个。

最佳答案

在 android 11 上,如果用户没有先授予前台位置权限,则后台位置权限请求将被隐式拒绝。
同时包含前台和后台位置权限的请求被视为无效:

If your app targets Android 11 (API level 30) or higher, the systemenforces this best practice. If you request a foreground locationpermission and the background location permission at the same time,the system ignores the request and doesn't grant your app eitherpermission.


Request location access at runtime

关于android - targetSdkVersion 30 的 ActivityCompat.requestPermissions 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64388343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com