有些Android设备有内置闪存,我们可以在Environment.getExternalStorageDirectory()
检查这个内存。但是,当我们插入SD卡时,系统会将这两者区分为/storage/sdcard0
和/storage/sdcard1
。
我不确定/storage/sdcard0
是闪存还是SD卡内存。任何人都可以提供任何解释,哪个是哪个?
答案 0 :(得分:2)
使用方法Environment.isExternalStorageRemovable()
确定它是否是可移动SD卡。
编辑以澄清:
考虑以下方法:
public enum ExternalStorageStatus {
READ_WRITE , READ_ONLY, NONE
}
public static ExternalStorageStatus checkExternalStorageStateAvailable(){
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return ExternalStorageStatus.READ_WRITE;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return ExternalStorageStatus.READ_ONLY;
} else {
return ExternalStorageStatus.NONE;
}
}
方法Environment.getExternalStorageState()
返回存储的当前状态。如果没有REAL外部存储(即isExternalStorageRemoveable()
== false的介质),则返回内部存储的当前状态。如果isExternalStorageRemoveable()
== true,则getExternalStorageState()返回可移动SD卡的状态。
优先考虑实际外部存储空间。