繁体   English   中英

在sdcard android 4.4及更高版本的私有目录上写入应用程序数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM