gpt4 book ai didi

android - 当 Min SDK 为 L 时在 Android M 上请求权限

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:02:56 25 4
gpt4 key购买 nike

我正在编写应在 Android L 和 M 上运行的应用。

您可能知道,Android M 需要在代码中请求权限才能从外部存储(sdcard)写入\读取,如下所示:

if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
PackageManager.PERMISSION_GRANTED)
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);

但是,我遇到了一个问题,因为调用 checkSelfPermission 需要 API 级别 23(而不是 22,因为我需要 Lollipop 支持)。

我尝试添加 @TargetApi(Build.VERSION_CODES.MNC) 但我遇到了另一个问题 - “无法解析符号 MNC”

那么问题来了,我如何编写代码将文件保存在 sdcard 中,用于 Lollipop 和 Marshmallow?

编辑:项目结构设置:

编译SDK版本:API 23:Android 5.X(MNC)

最低 SDK 版本:API 22:Android 5.1 (Lollipop)

目标SDK版本:API 23:Android 5.X(MNC)

谢谢

最佳答案

将编译版本更改为 API 23(MARSHMALLOW)并添加依赖

dependencies {
...
compile 'com.android.support:appcompat-v7:23.1.1'
...
}

并为棉花糖设置一个条件

  if (Build.VERSION.SDK_INT > 22) {
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// public void requestPermissions(@NonNull String[] permissions, int requestCode)
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for Activity#requestPermissions for more details.
return;
}
}

这是因为 checkselfpermission 方法只在 marsmallow 中有效

关于android - 当 Min SDK 为 L 时在 Android M 上请求权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754684/

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