Im Folgenden wird gezeigt, wie ich prüfe, ob die Speicherkarte gemountet/unmounted ist. Sie können es ändern, um zu prüfen, ob sie entfernt/eingelegt ist. Ich tue dies, indem ich einen BroadcastReceiver registriere, um die "mount events" zu erhalten und dann zu prüfen, in welchem Zustand sich die Speicherkarte befindet. Wenn sie nicht eingehängt ist und auch während der Überprüfung nicht eingehängt wird (der Zustand, in dem die Karte wieder eingehängt wird), ist sie nicht eingehängt oder die Karte wurde entfernt.
public class MemCardReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
onMemcardMounted();
}
else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){
onMemorycardUnMounted();
}
}
private void onMemorycardUnMounted() {}
private void onMemcardMounted() {}
}
Und in ManifestFile
<receiver android:enabled="true" android:exported="true" android:name="the.name">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
Es gibt mehrere verschiedene Zustände zur Kasse bitten wenn es noch andere Angaben gibt, wie. entfernt