Android 内部/SD卡的Environment.ExternalStorageDirectory

Android 内部/SD卡的Environment.ExternalStorageDirectory,android,xamarin.android,data-storage,Android,Xamarin.android,Data Storage,Environment.ExternalStorageDirectory究竟返回什么?我从开发者文档中读到: 注意:这里的“外部”一词不要混淆。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以作为设备中的内置存储器来实现,该设备不同于受保护的内部存储器,并且可以作为文件系统安装在计算机上 如果我的设备有一个大的(16GB)内存而没有SD卡,这将返回到内存的路径,我的理解正确吗? 或者,我是否必

Environment.ExternalStorageDirectory
究竟返回什么?我从开发者文档中读到:

注意:这里的“外部”一词不要混淆。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以作为设备中的内置存储器来实现,该设备不同于受保护的内部存储器,并且可以作为文件系统安装在计算机上

如果我的设备有一个大的(16GB)内存而没有SD卡,这将返回到内存的路径,我的理解正确吗? 或者,我是否必须检查SD卡是否已安装,如果未安装,请使用
ApplicationContext.FilesDir

我想我要问的是,如果我的应用程序需要下载250MB的数据,我如何知道在哪里存储数据因为我想使用“正确”的位置。

希望它对您有用

如果我的设备有一个大的(16GB)内存而没有SD卡,这将返回到内存的路径,我的理解正确吗

它将返回到外部存储器的路径。在具有您描述的特征的设备上,外部存储将是:

  • 16GB板载闪存(Android 2.x)的单独数据分区,或
  • 16GB板载闪存(Android 3.0+)主数据分区内的目录
或者,我是否必须检查SD卡是否已安装

外部存储器可以安装在主机PC上,无论外部存储器是由SD卡、一部分板载闪存还是pixie dust表示

在Android 2.x上,如果外部存储安装在主机PC上,则应用程序无法使用。因此,如果您支持Android2.x,那么无论外部存储是如何实现的,您都需要检查外部存储是否可用

我想我要问的是,如果我的应用程序需要下载250MB的数据,我如何知道在哪里存储数据

把它放在外部存储器上。如果外部存储不可用,请不要下载数据并告诉用户从其主机PC上卸载手机。许多Android 2.x设备甚至没有250MB的内部存储空间供所有应用组合使用,更不用说仅供您使用了