Environment.ExternalStorageDirectory用于内部/SD卡存储。

3
Environment.ExternalStorageDirectory返回的是什么?我从开发者文档中了解到:
注意:不要被这里的“external”一词所迷惑。这个目录最好被视为媒体/共享存储。它是一个可以容纳相对大量数据并且在所有应用程序之间共享(不强制执行权限)的文件系统。传统上,这是一个SD卡,但它也可以作为与受保护的内部存储不同的设备上的内置存储器而实现,并且可以作为计算机上的文件系统挂载。
如果我的设备有大容量(16GB)的内部存储器且没有SD卡,这会返回内部存储器的路径吗?还是说我必须检查SD卡是否已挂载,如果未挂载,则使用 ApplicationContext.FilesDir
我想问的是,如果我的应用程序需要下载250MB的数据,我如何知道在哪里存储它? - 因为我希望使用“正确”的位置。
2个回答

3
我理解的是,如果我的设备有大内存(16GB)且没有SD卡,这会返回到内部存储器的路径吗?
它将返回到外部存储器。对于你所描述的特征的设备,外部存储器将是:
- 那16GB板载闪存的一个单独数据分区(Android 2.x),或者 - 那16GB板载闪存主数据分区内的一个目录(Android 3.0+)
或者,我需要检查SD卡是否被安装?
外部存储器可以在主机PC上安装,无论外部存储器是否由SD卡、板载闪存的一部分或仅由精灵灰尘表示。
在Android 2.x上,如果外部存储在主机PC上已安装,则不可供应用程序使用。因此,如果你支持Android 2.x,无论如何实现外部存储器,都需要检查外部存储器是否可用。
我想问的是,如果我的应用程序需要下载250MB的数据,我怎么知道该把它存储在哪里?
将其放置在外部存储器上。如果外部存储器不可用,请勿下载数据并告诉用户将手机从主机PC上卸载。许多Android 2.x设备甚至没有足够的内部存储器(仅合并所有应用程序)的250MB,更不用说只是为了你的使用。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接