Java 如何检查是否有外部SD卡?
我用这个来检查是否有外部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
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;
}
}