当前位置:  开发笔记 > Android > 正文

我是否需要运行时权限检查以写入marshmallow中的getExternalFilesDir()路径?

如何解决《我是否需要运行时权限检查以写入marshmallow中的getExternalFilesDir()路径?》经验,为你挑选了1个好方法。

在我的Android应用程序中,我将一些文件保存到Environment.getExternalStorageDirectory() + "\MyApp"目录.这工作正常,直到android 6 marshmallow更新.棉花糖更新后,我无法写入此目录.

如本回答所述,在棉花糖中,应用程序需要在写入外部存储之前在运行时请求用户的许可.

但是,当我使用context.getExternalFilesDir(null)而不是Environment.getExternalStorageDirectory(),我不需要在运行时请求任何权限,它只是工作(返回的路径context.getExternalFilesDir(null)也在外部存储目录内).

这有点巧合还是我可以在context.getExternalFilesDir(null)没有得到运行许可的情况下继续写入?



1> Jared Rummle..:

该文件规定:

从KITKAT开始,读取或写入返回的路径不需要任何权限; 它总是可以访问调用应用程序.这仅适用于为调用应用程序的包名生成的路径.要访问属于其他包的路径,需要WRITE_EXTERNAL_STORAGE和/或READ_EXTERNAL_STORAGE.

您将拥有getExternalFilesDir()Android 4.4+的读/写权限,无需任何权限.

如果您需要支持较低的API级别,我建议使用FileProvider.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有