2010-08-05 7 views
18

Ich habe eine Anwendung, die eine Datei auf der SD-Karte verwendet, die Anwendung ausgeführt wird, wenn das Telefon startet, und es hat sich gezeigt, dass die Datei nicht zugegriffen werden kann, wenn das Programm zum ersten Mal ausgeführt wird bevor SD-Karte verfügbar ist.android intent für sdcard ready

Gibt es einen Broadcast-Empfänger, mit dem ich feststellen kann, wann die SD-Karte bereit ist?

aktualisieren

einfach die Antwort zusammenfassen, die Absicht registrieren tun:

IntentFilter filter = new IntentFilter (Intent.ACTION_MEDIA_MOUNTED); 
filter.addDataScheme("file"); 
registerReceiver(this.mSDInfoReceiver, new IntentFilter(filter)); 

und einen Rundfunkempfänger erstellen, um darauf zu reagieren:

private BroadcastReceiver mSDInfoReceiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context arg0, Intent intent) { 
    // Code to react to SD mounted goes here 
    } 
}; 

Antwort

18

Lookup ACTION_MEDIA_MOUNTED Broadcast Aktion auf der Intent

public static final String ACTION_MEDIA_MOUNTED 

Since: API Level 1 
Broadcast Action: External media is present and mounted at its mount point. The path to the mount point for the removed media is contained in the Intent.mData field. The Intent contains an extra with name "read-only" and Boolean value to indicate if the media was mounted read only. 
Constant Value: "android.intent.action.MEDIA_MOUNTED"