【问题标题】:android WRITE_EXTERNAL_STORAGE permission runtime [duplicate]android WRITE_EXTERNAL_STORAGE权限运行时[重复]
【发布时间】:2018-01-24 19:40:36
【问题描述】:

我有一个应用程序将文件保存在手机内存的图片目录中。 我的清单中有这个:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在 android 文档中,它说您必须在 android 6 或更高版本的设备中请求执行(而不是安装)权限。但我已经在三种设备上进行了测试:

  • 带有 android 7.0 的 Moto E
  • 带有 android 7.1 的 Moto E
  • 华为P8 Lite 安卓6.0

它只是在清单中的权限下保存文件,而不请求它。 我想在运行时需要权限的设备中测试我必须添加的新代码来处理这个问题,为什么这 3 个设备不需要它?

【问题讨论】:

  • 您可能将targetSdkVersion 设置为
  • 正如迈克所说,您的 targetSdkVersion 必须低于 23 。加你 build.gradle 来确认。
  • 是的,它低于 23。它是否可以在 android>23 的设备上运行而无需在运行时询问?
  • 您确定将其写入外部目录吗?不是不需要那个权限的内部目录吗?
  • 我得到的目录是:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)

标签: android permissions


【解决方案1】:

你必须像这样在运行时请求许可,

ActivityCompat.requestPermissions(EmployeeDetailsActivity.this,
                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA},
                REQUEST_CODE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多