[英]Write application data on private directory on sdcard android 4.4 and above
关于此主题有很多问题,但是我的纠正示例找不到任何答案。
我正在使用三星galaxy S5运行android 4.4,这是有限的存储
官方文件说:
WRITE_EXTERNAL_STORAGE权限只能授予对设备上主要外部存储的写访问权限。 除合成权限允许的应用程序特定于程序包的目录外,不得允许应用程序写入辅助外部存储设备。 以这种方式限制写操作可确保系统在卸载应用程序时可以清理文件。
我的应用程序需要将文件写入Sdcard(绝对路径为/storage/extSdCard
),因此我将应用程序数据写入我的应用程序目录: /storage/extSdCard/Android/com.myapp.example/files
但权限被拒绝。 所以我怀疑上面的陈述:
除综合权限所允许的特定于软件包的目录外
我认为我无法写入根目录/storage/extSdCard
但仍然能够将我的应用程序数据写入我的应用程序包目录。 我在这里误会了吗?
p / s:我仍然可以将我的应用程序数据写入内置存储: /storage/emulated/0/Android/data/com.myapp.example/files
。 我不想使用getExternalFileDirs()
因为它总是返回内置的,而不是我的sdcard目录。
如果getExternalFilesDir(null)返回的位置不同于/storage/extSdCard/Android/com.myapp.example/files,那么我认为这就是为什么它会导致访问权限错误。 您可以在没有权限的情况下写入SD卡的唯一位置是getExternalFilesDir()返回的目录
由于您说由getExternalFilesDir(null)返回的目录是不可接受的,因此我建议向清单中添加WRITE_EXTERNAL_STORAGE权限。
您的应用特定目录应为/storage/extSdCard/Android/data/com.myapp.example/files
而不是/storage/extSdCard/Android/com.myapp.example/files
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.