gpt4 book ai didi

api 22 上的 Android M 错误,并且找不到 requestPermissions() 方法

转载 作者:行者123 更新时间:2023-11-29 19:44:26 25 4
gpt4 key购买 nike

我正在使用 API 22,但我想在 Android M 6.0 中编译我的项目,我有以下代码:

在顶部声明:

private static final String[] REQUIRED_PERMISSIONS = new String[]{"READ_EXTERNAL_STORAGE"};
private static final int REQUEST_PERMISSIONS = (Integer) null;

在我的 onCreate() 上:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
LinkedList<String> missingPermissions = new LinkedList<>();
for(String p : REQUIRED_PERMISSIONS){
if(checkCallingOrSelfPermission(p) != PackageManager.PERMISSION_GRANTED){
missingPermissions.add(p);
}
}
if(!missingPermissions.isEmpty()){
String[] mpArray = new String[missingPermissions.size()];
missingPermissions.toArray(mpArray);
requestPermissions(mpArray, REQUEST_PERMISSIONS);
}
}

我受到启发here检查我的问题在 Eclipse 中,Build.VERSION_CODES.M(未找到 M)给我一个错误,然后,找不到回调方法 requestPermissions(mpArray, REQUEST_PERMISSIONS)我也是,有什么建议吗?

如果我正在使用 API 22,并且正在使用 Android 6.0 M 进行编译。如何在 API 22 上正确解决危险权限(如 READ_EXTERNAL_STORAGE)的问题?

最佳答案

根据文档,Build.VERSION_CODES.MrequestPermissions()在 API 级别 23 中添加。

由于您使用 API 级别 22 进行编译,因此这些根本不存在。

要访问 API 级别 23 中引入的 API,您需要使用 API 23 进行编译。如果继续使用 API 22 进行编译,您将无法访问这些 API。

请注意,简单地使用 API 23 进行编译不会影响您的应用程序在任何设备上的行为方式,它只会打开更新的 API 供您在至少运行 API 23 的设备上使用。

if I'm working on API 22, and I'm compiling with Android 6.0 M, how i can do for solve the issue for the dangerous permissions like READ_EXTERNAL_STORAGE correctly on API 22?

运行 API 22 的设备将继续使用旧的安装时模型来获取权限。运行 API 22 及以下版本的设备没有任何变化。只有运行 API 23 的设备使用新的运行时权限模型。

关于api 22 上的 Android M 错误,并且找不到 requestPermissions() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078211/

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