2015-01-14 31 views
0

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

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

回答

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中发生了什么变化(真的不确定,只是在这里猜测)是每个文件创建都会将该文件标记为只读主人和其他人。