读取或写入外部存储权限:为什么没有错误?

时间:2019-07-24 06:15:00

标签: android android-permissions runtime-permissions

是的,我没有收到错误消息。

我已经在 AndroidManifest.xml

中定义了权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我正在使用Android-Image-Cropper从外部存储器中提取图像,并且工作正常。

我很困惑,因为即使我没有编写任何代码来获取外部存储的运行时权限,它也能正常工作。

受测设备信息: -三星J8,操作系统-Andorid 9 Pie, -Nexus 5X模拟器=操作系统-Andorid 9 Pie

许可政策是否有变化?为什么它起作用?

1 个答案:

答案 0 :(得分:0)

Here我在documentation中找到了答案:

  

Android 4.4 (API level 19)开始,读取或写入文件   在您应用的私有外部存储目录中-使用   getExternalFilesDir()-不需要    READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE 权限。

我的项目不需要它,因为我的最低API级别为19。

  

因此,如果您的应用支持Android 4.3 (API level 18)及更低版本,并且   您只想访问私有外部存储目录,   应该声明仅在下层请求许可   添加maxSdkVersion属性的Android版本:

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

谢谢。