我有一个大的(50兆)下载,我想加载到SD卡,如果已安装。如果没有SD卡,我将其下载到内部存储。我检查两种情况下的可用空间。
我的代码在模拟器和我的Droid 2上运行得很好。我的Atrix是一个不同的故事。
摩托罗拉Atrix有一个内置的SD卡。它还可以有一个外部SD卡。目录是mnt / sdcard和mnt / sdcard-ext。检查外部存储状态时,始终返回Environment.MEDIA_MOUNTED。使用Environment.getExternalStorageState()时,始终返回Environment.MEDIA_MOUNTED。标准外部存储功能忽略可移动SD卡。
这是Atrix特有的吗?如果没有,其他设备是否使用sdcard-ext作为可移动SD卡?
我真的不想开始为特定设备编码......
答案 0 :(得分:2)
Android要求每台设备都有一个容量至少为1GB的“共享”存储空间,它是开箱即用的,并且必须安装到/sdcard
(或至少符号链接) /sdcard
)。请参阅兼容性定义文档的第7.6.2节,其最新版本链接自here。
因此,制造商可以选择A。将1GB或更高的SD卡与每个设备捆绑在一起,在设备的SD卡插槽中物理位于包装盒内,或B.分区内部存储(或包括辅助内部存储)提供至少1GB的“共享”存储,并将其安装在/sdcard
。如果有一个真正的SD卡插槽,那么必须将其安装在其他地方。
许多制造商似乎选择B。
我认为谈论“外部存储”的API实际上是指CDD术语中的“共享存储”,而且由于这些要求,“外部”存储通常不是外部存储。
答案 1 :(得分:1)
是的,我知道SGS的“内部”存储使用mnt / sdcard,而辅助卡使用mnt / sdcard-ext。