Ich bin gerade auf ein Problem gestoßen, das ich selbst nicht beheben kann.Speichern von heruntergeladenen Dateien unter Android 6.0 +
Ein Schlüsselelement dieser Anwendung ist das Herunterladen und eine Datei von einer URL zu speichern, für die ich bin mit einer Erweiterung von AsyncTask
Diese Datei schließlich
Environment.getExternalStorageDirectory().toString() + "/" + fileName + ".xls")
dann gespeichert wird ein Datei erstellt:
File file = new File(Environment.getExternalStorageDirectory().toString() + "/" + fileName + ".xls");
und ein strea m ist
InputStream is = new FileInputStream(file);
gemacht An welcher Stelle ich ein FileNotFoundException ENOENT bekommen: keine solche Datei oder ein Verzeichnis.
Ich habe die entsprechenden Berechtigungen in der Datei meiner AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Environment.getExternalStorageState() gibt "montiert" Wert eingestellt.
Und ich kann bestätigen, Internet-Verbindung hergestellt ist, wie zuvor kann ich alle Dateien herunterladen, muss ich mit entsprechenden Anmeldeinformationen in der App einloggen.
Ich mache diese App für API 16, Android 4.1 (Jelly Bean). Jede Hilfe würde sehr geschätzt werden!
EDIT: Ich habe geschafft, machen dies auf Samsung SM-G800G (Android 5.1.1, API 22) zu arbeiten. Aber die Anwendung läuft nicht auf meinem Nexus One (Android 6.0, API 23) oder SAMSUNG SM-G900F (Android 6.0.1, API 23).
Es ist also definitiv etwas los mit wie Android-Versionen den Download beeinflussen, ich bin gerade dabei.
Haben Sie den Datei-Explorer verwendet, um zu prüfen, ob die Datei heruntergeladen wurde oder nicht? – TSR
Ich habe jetzt, aber es gibt keine Anzeichen für die Datei. –
Wahrscheinlich herunterladen ist in Ordnung, aber speichern in Datei nicht. Sie sollten sofort überprüfen, ob die Datei existiert. Nicht später. Probabky haben Sie unbemerkt Ausnahmen und keinen Code in Catch-Blöcken. – greenapps