如何在KitKat +上保留用户生成的内容?

时间:2015-01-14 13:38:47

标签: android application-design android-external-storage

这更多的是设计而不是技术问题......在KitKat上谷歌禁止写入SD卡,除了指定的应用程序文件夹。对于只显示内容的应用程序来说没问题,但是生成内容的应用程序呢(我的意思是用户在该应用程序的帮助下生成内容:文档,数据库,统计数据)?我担心的是,如果卸载了应用程序,那么系统将删除所有数据。大多数用户不期望这种行为,他们只是不会想到这一点。当应用程序无法按预期工作时,用户会做什么?是的,尝试重新安装它作为第一个解决方案。丢失所有用户文件!将它们备份到云端可能是一种选择,但SD存储主要用于大型文件,通过移动网络备份它们会很昂贵。

所以问题是这些应用程序的开发人员:你采取了什么方法来克服这种限制后果?

1 个答案:

答案 0 :(得分:0)

一如既往

File folder = new File(Environment.getExternalStorageDirectory(), "/myApp/");
folder.mkdirs();
File file = new File(folder, "file.jpg");

// open output stream and write to it... works fine...

在任何版本的Android上都能正常工作。

据我了解,对KitKat的限制是,在您致电folder.mkdirs();之后,其他应用程序无法访问它。在Android上,为每个应用创建了一个新用户,他们如何控制/阻止权限,所以我相信KitKat中的变化(真的不确定,只是在这里猜测)是每个文件创建都将该文件标记为只读/写入所有者,没有其他人。