android – 如何让用户访问我的应用程序的内部存储目录?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – 如何让用户访问我的应用程序的内部存储目录?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1995字,纯文字阅读大概需要3分钟。
内容图文
![android – 如何让用户访问我的应用程序的内部存储目录?](/upload/InfoBanner/zyjiaocheng/711/11ccc0718cb446daaf466a05dbabae2f.jpg)
我的应用程序将文件存储在其内部存储目录(/Android/data/com.mycompany.myapp/files,由getFilesDir()返回),我希望允许用户直接从他们的文件管理应用程序访问这些文件移动设备或Android文件传输桌面应用程序.
Storage Options developer guide说:
By default, files saved to the internal storage are private to your application and other applications cannot access them (nor can the user).
“默认情况下”意味着我可以更改默认权限以允许用户访问这些文件,但我找不到任何有关如何执行此操作的文档.当我使用文件管理应用程序浏览/ Android / data目录时,目前隐藏了com.mycompany.myapp目录.
我目前正在保存这样的文件数据:
String fileName = "myfile.jpg";
String filePath = getFilesDir() + File.separator + fileName;
FileOutputStream fileStream = new FileOutputStream(filePath);
fileData.writeTo(fileStream); // fileData is a ByteArrayOutputStream
fileStream.close();
我尝试将各个文件的权限设置为全局可读,但这并未使目录可见:
FileOutputStream fileStream = this.app.openFileOutput(fileName, Context.MODE_WORLD_READABLE);
我还检查了AndroidManifest文件的文档,但没有看到任何内容.有谁知道我怎么做到这一点?
解决方法:
我仔细研究了getFilesDir()vs getExternalFilesDir()的结果,发现getFilesDir()返回/ data / data / [packagename] / files,而getExternalFilesDir()返回/ Android / data / [packagename] / files.我认为我在/ Android / data中浏览的应用程序文件是内部存储目录,但现在我看到那些实际上是外部存储目录.
如果内部存储目录确实永远不会被普通用户使用,我希望文档说不是说“默认情况下”它们不可用.至少对我来说,“默认情况下”表示可以更改默认行为.
无论如何,我测试并确认如果删除我的应用程序,保存到getExternalFilesDir()的文件会自动删除.这样就满足了我对与应用程序明确连接的存储位置的需求(使用特定于应用程序的目录名称并随应用程序删除),但用户可以访问,以便偶尔进行手动文件管理.
这是一个比较,可能有助于其他人阅读此内容:
> getFilesDir() – 创建特定于应用程序的目录;隐藏于用户之外;随应用删除
> getExternalFilesDir() – 创建特定于应用程序的目录;用户可以访问;随应用删除
> getExternalStoragePublicDirectory() – 使用共享目录(例如,音乐);用户可以访问;应用程序删除后仍然存在
内容总结
以上是互联网集市为您收集整理的android – 如何让用户访问我的应用程序的内部存储目录?全部内容,希望文章能够帮你解决android – 如何让用户访问我的应用程序的内部存储目录?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。