Der Versuch, ein PDF vom Server empfangen angezeigt werden, aber "Medien nicht gefunden Fehler"Android - Anzeige PDF vom Server
Zuerst bekommen konvertiere ich String Array Byte:
byte[] data = Base64.decode(stringData, Base64.DEFAULT);
Dann schreibe ich das Byte [ ] in einer Datei:
String path = getFilesDir() + "/myfile.pdf";
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream stream = new FileOutputStream(file);
stream.write(article.getFileDataBytes());
stream.close();
Dann PDF ich versuche anzuzeigen:
Uri path2 = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path2, "application/pdf");
startActivity(intent);
Aber nach startActivity Aufruf erhalte ich die „Medien nicht gefunden Fehler“
Ich bin nicht sicher, was falsch ist sind keine Ausnahmen ausgelöst, wenn die Datei zu schreiben
Was ist die beste Vorgehensweise zum Bereinigen der Dateien, wenn sie nicht mehr benötigt werden? – MobileMon
@MobileMon: Nun, das Problem ist, dass Sie nicht wissen, wann die andere App unbedingt damit fertig ist. Ich würde die Datei in 'getCacheDir()' (mein Beispiel verwendet 'getFilesDir()') für Anfänger, so dass im Falle von wenig Speicherplatz ist es leicht loswerden. Dann würde ich einen Thread beim App-Start starten, der Cache-Dateien loswird, die, sagen wir, älter als 24 Stunden sind. Sie müssen möglicherweise aggressiver als das sein, wenn Sie viele Dateien oder wirklich große Dateien oder etwas in der Art haben. "Best Practice" ist hier schwer zu definieren. – CommonsWare