我有一个应用程序保存从服务器下载的文件。这些文件对于我的应用程序不是私人的,并且也应该可供其他应用程序访问。我想知道当SD卡不可用时,保存这些文件的正确路径是什么。对于SD卡,还有就是众所周知的API -将公共文件保存在内部存储器中
getExternalStorageDirectory()
对于在内部存储器中的应用程序的私有数据有 -
Context.getFilesDir()
在某些设备上,内部存储器由/ EMMC代表/。
如果有人能详细论述/ emmc /,这将会非常有帮助。我知道它代表嵌入式存储卡,并不存在于所有设备中。但它是否真的代表了内部记忆?或者它是第三个存储器?
我应该使用openFileOutput()
与MODE_WORLD_READABLE
保存文件吗?
感谢CommonsWare!是的,我的应用程序使用ACTION_VIEW触发其他应用程序正是我将这些文件公开地称为这些文件的原因。此外,由于某些文件浏览器和应用程序扫描SD卡以及内部存储器,我希望它们能够找到这些文件。所以,我的问题仍然存在,以防万一SD卡找不到的地方保存文件? – Akshay 2011-04-23 14:33:44
@Akshay:“另外,由于某些文件浏览器和应用程序扫描SD卡以及内部存储器,我希望它们能够找到这些文件。” - 这是不可能的,或者如果是的话,这是一个重大的安全漏洞。 “所以,我的问题仍然存在,在没有找到SD卡的情况下保存文件的位置?” - 'getFilesDir()'。 – CommonsWare 2011-04-23 14:39:37
谢谢CommonsWare!我想明白这一点。我的应用程序可以与下载附件并允许文档查看器和媒体播放器打开这些文件的电子邮件客户端进行比较。如果SD卡不在,电子邮件客户端将保存文件在哪里?内部存储器中是否没有公共目录?像/ internal_memory/downloads?为什么你会考虑将内存作为安全漏洞进行扫描?只是为了确认,内部存储器意味着设备/手机存储器,对吧?很抱歉,有些问题。 – Akshay 2011-04-23 14:51:18