Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查是否有外部SD卡?_Java_Android - Fatal编程技术网

Java 如何检查是否有外部SD卡?

Java 如何检查是否有外部SD卡?,java,android,Java,Android,我用这个来检查是否有外部SD卡,之前: public static boolean externalMemoryAvailable() { return android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); } 但是它返回true,并且外部SD卡的路径是“/storage/emulated/0,而我的测试机器(Mi Note

我用这个来检查是否有外部SD卡,之前:

public static boolean externalMemoryAvailable() {
    return android.os.Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED);
}
但是它返回true,并且
外部SD卡的路径是“
/storage/emulated/0
,而我的测试机器(Mi Note Pro)没有外部SD卡。因此我想知道是否还有其他功能来检查外部SD卡。
希望有人能帮助我!谢谢!

你好,你走对了方向

只用

Environment.isExternalStorageRemovable()

如果是实际SD卡,则在morden设备内部存储也被认为是SD卡。

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

if(isSDPresent)
{
  // yes SD-card is present
}
else
{
 // Sorry
}
这个问题在一次会议上得到了解决


这个问题已经在堆栈溢出上被问过了,并且有一个完美的答案。

你是对的,但是这个函数在某些设备上不能工作,因为它会返回falsetime@lixuandeng是的,这可能是个问题,但您可以先检查
ndroid.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
this,然后检查它是否
isExternalStorageRemovable()
你的意思是?`public static boolean externalMemoryAvailable(){if(android.os.Environment.getExternalStorageState()).equals(android.os.Environment.MEDIA_-MOUNTED)){if(Environment.isExternalStorageRemovable())返回true;else返回false;}else返回false;}`是的,你知道了。
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;
    }
  }