2017-01-18 2 views
-2

私は外部のSDカードが前にそこにあるかどうかを確認するためにこれを使用:外付けSDカードがあるかどうかを確認するにはどうすればいいですか?

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

が、私のテストマシン(ミ注Proは)外部SDを持っていませんが、それはtrueを返し、external SD cardのパスが "/storage/emulated/0ですその他の機能は、外部のSDカードを確認するために存在する場合card.Soのだろうか。 ホープ誰かが私を助けて!ありがとう!

答えて

0

こんにちはあなたは正しい軌道に乗っている。..

だけ使用

Environment.isExternalStorageRemovable() 

実際のSDカードであるかどうか確認してください。 mordenデバイスでは、内部ストレージもsdcardとみなされます。

+0

は、あなたが正しい答えを持っていますが、この機能は、いくつかの中で働くことができないましたデバイスは常にfalseを返します。 –

+0

@lixuandeng yeahが問題になるかもしれませんが、まず 'ndroid.os.Environment.getExternalStorageState()。equals( android.os.Environment.MEDIA_MOUNTED);'これをチェックしてください'isExternalStorageRemovable()'が – AJay

+0

を意味するかどうかを確認するよりも、 'パブリック静的ブールexternalMemoryAvailable(){ IF(android.os.Environment.getExternalStorageState()に等しい( android.os.Environment.MEDIA_MOUNTED)。){ IF(Environment.isExternalStorageRemovable()) リターン真。 else falseを返します。 } else falseを返します。 } ' –

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; 
    } 
    } 

この質問はすでにスタックオーバーフローに頼まれた時に解決し、here

+0

完璧な答え.... – AJay

関連する問題