Android 检查SD卡是否存在
我想检查是否有SD卡插入Android设备(目前是Minix Neo X7) 如果我使用:Android 检查SD卡是否存在,android,Android,我想检查是否有SD卡插入Android设备(目前是Minix Neo X7) 如果我使用: String state = Environment.getExternalStorageState(); if( Environment.MEDIA_MOUNTED.equals( state ) ) { } 我总是对的。 并且“Environment.isExternalStorageRemovable()”始终返回true 有什么想法吗?有点啰嗦,但是 if(Environment.MEDIA_
String state = Environment.getExternalStorageState();
if( Environment.MEDIA_MOUNTED.equals( state ) ) { }
我总是对的。
并且“Environment.isExternalStorageRemovable()”始终返回true
有什么想法吗?有点啰嗦,但是
if(Environment.MEDIA_UNMOUNTABLE.equals(false) &&
Environment.MEDIA_UNKNOWN.equals( false ))
{
if(Environment.MEDIA_REMOVED.equals( false) &&
Environment.MEDIA_UNMOUNTED.equals( false ))
{ //mounted }
}
您可以使用以下代码检测连接到设备的可插入(非模拟)SD卡或usb存储器
public void CHECK_EXTERNAL_STORAGE () {
File storage_directory = new File("/storage");
File storage;
for (int i = 0; i < storage_directory.listFiles().length; i++) {
storage = storage_directory.listFiles()[i];
if (storage.getAbsolutePath().contains("emulated")) {
continue;
}
if (storage.getAbsolutePath().equals("/storage/self")) {
continue;
}
if (Environment.getExternalStorageState(storage).equals(Environment.MEDIA_MOUNTED)) {
if (Environment.isExternalStorageEmulated(storage) == false) {
final File finalStorage = storage;
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "External SD Card exists. Path: " + finalStorage.getAbsolutePath());
text_view2.setText("External Storage exists. Path: " + finalStorage.getAbsolutePath());
}
});
}
}
else {
Log.d(TAG, "No external Storage detected.");
}
}
}
公共无效检查\u外部存储(){
文件存储\目录=新文件(“/storage”);
文件存储;
对于(int i=0;i
您可以像这样检查外部可移动sd卡是否可用
public static boolean externalMemoryAvailable(Activity context) {
File[] storages = ContextCompat.getExternalFilesDirs(context, null);
if (storages.length > 1 && storages[0] != null && storages[1] != null)
return true;
else
return false;
}
这很好用。这可能是一个复制品-基本上,在现代Android设备上,外部存储可能不是SD卡(它可能仍然是内部闪存)。可能是@Aaron的复制品:不,它不是复制品,因为我不想知道路径(我正在使用的设备的路径总是一样的),我必须知道SD卡是否插入或关闭not@AADTechnical:不,它不是复制品。正如我在问题中所述,我已经尝试将getExternalStorageState与Environment.MEDIA_挂载进行比较,结果始终为True检查挂载表,看看它是否挂载在您已知的路径上?