Environment.ExternalStorageDirectory
究竟返回了什么?我从开发人员文档中读到:
注意:不要在这里混淆“外部”这个词。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。
我是否理解如果我的设备有一个大的(16GB)内存并且没有SD卡,这将返回内部存储器的路径?
或者,我是否必须检查SD卡是否已安装,如果没有,请使用ApplicationContext.FilesDir
?
我想我要问的是,如果我的应用程序需要下载250MB的数据,我怎么知道它的存储位置? - 因为我想使用“正确”的位置。
答案 0 :(得分:3)
我是否理解如果我的设备有一个大的(16GB)内存且没有SD卡,这将返回内部存储器的路径?
它将返回外部存储的路径。在具有您描述的特征的设备上,外部存储将是:
或者,我是否必须检查SD卡是否已安装
外部存储器可以安装在主机PC上,无论外部存储器是由SD卡,板载闪存的一部分还是小精灵粉尘代表。
在Android 2.x上,如果外部存储装载在主机PC上,则应用程序无法使用。因此,如果您支持Android 2.x,则需要检查外部存储是否可用,无论外部存储的实现方式如何。
我想我要问的是,如果我的应用需要下载250MB的数据,我怎么知道在哪里存储它?
将它放在外部存储设备上。如果外部存储不可用,请不要下载数据并告诉用户从主机PC卸载手机。有许多Android 2.x设备甚至 250MB的内部存储空间适用于所有应用程序,更不用说仅供您使用。
答案 1 :(得分:0)