3 Stimmen

Probleme beim Erstellen einer temporären Datei in Android?

In meiner MediaPlayer-Anwendung für das Streaming von Videos verwende ich den folgenden Code

File temp = File.createTempFile("mediaplayertmp", "dat");

während der Ausführung werden Ausnahmen ausgelöst wie

Parent directory of file in not 
writable:/sdcard/
mediaplayertmp43912.dat

Ich weiß nicht, wie man dieses Problem zu behandeln, und ich möchte wissen, dass, wenn wir ausführen, dass Code bedeutet, wo die Datei erstellt werden.jemand kennt die Lösung bedeutet, bitte helfen Sie mit einigen Code.

18voto

SandyK Punkte 181

Wird im Android-Manifest die Erlaubnis zum Schreiben auf die SD-Karte angefordert?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

6voto

Jeremy Logan Punkte 46499

Ich bin nicht sicher, was Sie tun wollen... wenn das Verzeichnis nicht beschreibbar ist, ist es nicht beschreibbar. Geben Sie eine Fehlermeldung für den Benutzer aus, die ihn darauf hinweist, dass seine SDCard Schreibrechte benötigt (möglicherweise mit Anweisungen zur Behebung).

In einigen Anwendungen habe ich Code ähnlich wie dieser, um sicherzustellen, dass es eine SDCard gibt... sollte nicht schwierig sein, es zu ändern, um sicherzustellen, dass es auch beschreibbar ist:

// make sure we have a mounted SDCard
if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
    // they don't have an SDCard, give them an error message and quit
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(R.string.welcome_dialog_sdcard_error)
        .setCancelable(false)
        .setPositiveButton(R.string.welcome_dialog_sdcard_ok, new DialogInterface.OnClickListener() {
            public void onClick(final DialogInterface dialog, final int id) {
                finish();
            }
        });
    final AlertDialog alert = builder.create();
    alert.show();
} else {
    // there's an SDCard available, continue
}

2voto

man910 Punkte 159

Ich hatte das gleiche Problem. Meine App funktionierte gut, bis ich das SDK aktualisiert habe. Sie benötigt jetzt die WRITE_EXTERNAL_STORAGE-Berechtigung, um auf die SD-Karte zu schreiben.

1voto

Cross_ Punkte 513

Der Code funktioniert so, wie er ist, unter Android 1.5 oder früher. Bei allen neueren Geräten muss die App in ihrem Manifest ausdrücklich um die Erlaubnis WRITE_EXTERNAL_STORAGE bitten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X