在我的Android应用中,我将一些文件保存到Environment.getExternalStorageDirectory() + "\MyApp"
目录中。直到android 6棉花糖更新,这工作正常。棉花糖更新后,我无法写入该目录。
如该答案所述,在棉花糖中,应用程序需要在运行时向用户请求权限,然后才能写入外部存储。
但是,当我使用context.getExternalFilesDir(null)
而不是时Environment.getExternalStorageDirectory()
,我不需要在运行时请求任何许可,它就可以工作(从中返回的路径context.getExternalFilesDir(null)
也在外部存储目录中)。
这是巧合context.getExternalFilesDir(null)
吗,还是我可以在运行时不征求许可就继续写?
该文档指出:
从KITKAT开始,无需任何权限即可读取或写入返回的路径;调用应用程序始终可以访问它。这仅适用于为调用应用程序的程序包名称生成的路径。要访问属于其他软件包的路径,需要WRITE_EXTERNAL_STORAGE和/或READ_EXTERNAL_STORAGE。
您将拥有getExternalFilesDir()
对Android 4.4+的读/写访问权限,而无需任何权限。
如果需要支持较低的API级别,我建议使用FileProvider。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句