首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中授予EXTERNAL_STORAGE所需的许可?

在Android中授予EXTERNAL_STORAGE所需的许可?
EN

Stack Overflow用户
提问于 2015-07-01 13:22:38
回答 6查看 31.2K关注 0票数 10

安卓权限WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE会触发Android的新授予权限对话框吗?

EN

回答 6

Stack Overflow用户

发布于 2015-10-15 03:07:40

我同意纪尧姆?佩罗的回答。我在写“READ_WRITE_EXTERNAL_STORAGE in AndroidManifest.xml”时也遇到过类似的问题。

默认情况下,由于应用程序中没有显示权限,人们需要将应用程序( permissions.Then I)中存储的切换按钮( targetSdkVersion in build.gradle )切换到小于23(MNC)和与安装有权限的sdkVersion相关的其他数字。

另一种方法是在需要允许的地方编写requestpermission函数。守则如下:

代码语言:javascript
复制
 if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
    PackageManager.PERMISSION_GRANTED) {
    //do the things} else {
    requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
      AnyNumber);

因为我的名声还不到15个,所以我不能投票支持纪尧姆·珀罗的answer.Just,用这种方式来表达我的想法。

票数 10
EN

Stack Overflow用户

发布于 2016-10-12 15:53:45

我解决了为Android添加这个检查版本的问题

代码语言:javascript
复制
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
                    requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
            }
票数 7
EN

Stack Overflow用户

发布于 2015-08-11 02:50:46

我的答案是基于我在版本2上使用仿真器进行的测试。

如果您的目标是MNC预览API级别,默认情况下不会授予WRITE_EXTERNAL_STORAGE,而是新的动态权限API的一部分。

您将在设备设置中的新应用权限菜单中将存储权限作为切换按钮,您可以使用Activity.requestPermissions显示该权限的弹出。

但是,如果您的目标是api级别< MNC,它将不会被归类为危险的权限,因此将被授予而不需要用户禁用它(没有显示在权限设置中),而且您也无法使用Activity.requestPermissions编译代码,因为预览SDK强制minSdkVersion="MNC"使用新的api。

这是一种与位置权限不同的行为:无论您的API级别是什么,用户都可以在“权限”菜单中关闭位置。

对于权限菜单本身,默认情况下是打开权限切换状态:

  • 目标API级别< MNC。
  • Target级= MNC,但您可以从以前的安装中升级设备上的应用程序,其中的目标API级别低于MNC。

否则,默认情况下,您将看到切换被关闭。

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31162638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档