如何检查是否有外置SD卡?

时间:2017-01-18 03:26:52

标签: java android

我用它来检查之前是否有外部SD卡:

public static boolean externalMemoryAvailable() {
    return android.os.Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED);
}

但是它返回true并且external SD card的路径是“/storage/emulated/0而我的测试机器(Mi Note Pro)没有外部SD卡。所以我想知道是否还有其他功能需要检查外部SD卡。 希望有人帮助我!谢谢!

3 个答案:

答案 0 :(得分:2)

public boolean externalMemoryAvailable() {
    if (Environment.isExternalStorageRemovable()) {
      //device support sd card. We need to check sd card availability.
      String state = Environment.getExternalStorageState();
      return state.equals(Environment.MEDIA_MOUNTED) || state.equals(
          Environment.MEDIA_MOUNTED_READ_ONLY);
    } else {
      //device not support sd card. 
      return false;
    }
  }

此问题已在Stack Overflow上提出,并有答案here

答案 1 :(得分:0)

你好,你走在正确的轨道上..

只需使用

Environment.isExternalStorageRemovable()

如果它是真正的SD卡,那就是chek。在现代设备中,内部存储也被视为SD卡。

答案 2 :(得分:0)

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

if(isSDPresent)
{
  // yes SD-card is present
}
else
{
 // Sorry
}

此问题已于Check whether the SD card is available or not programmatically

解决