2017-07-11 5 views
0

Ich habe irgendwo gelesen, dass Download Manager in Android kann nicht die Datei in der internal storage speichern, weil Download Manager nicht in meinem App-Prozess läuft, aber in einem anderen Prozess vom System gesteuert. Internal storage Standorte sind Berechtigungen geschützt und jeder Ort, den Sie zur Verfügung stellen würde nur für meine Anwendung zugänglich sein.Kann Download Manager Datei im internen Speicher in Android speichern?

aber wenn ich diesen Code verwendet, gespeichert es meine Datei in Interner Speicher:

request.setDestinationInExternalFilesDir(ShowMovieActivity.this, Environment.DIRECTORY_DOWNLOADS,"Movie"+ID+".mp4"); 

Ich bin verwirrt, kann mir jemand helfen?

Antwort

0

DownloadManager wie von seinem Namen angezeigt, ist ein externer Manager von Android. Sie können den Download Manager nicht zum Speichern einer Datei im internen Speicher verwenden, da dieses Verzeichnis nur für Ihre Anwendung bestimmt ist. Sie benötigen einen Inhaltsanbieter, um Ihre Datei in einem temporären Verzeichnis zu speichern und dann in Ihrem internen Speicher zu speichern.

Hoffen, dass es nicht zu spät ist :)

0

Verwenden async Aufgabe Dateien zum Download bereit. Können Sie die Dateien irgendwo speichern? Jeder von Ihnen angegebene Ort.

DownloadManager wie von seinem Namen angezeigt, ist ein externer Manager von Android. Sie können den Download Manager nicht zum Speichern einer Datei im internen Speicher verwenden, da dieses Verzeichnis nur für Ihre Anwendung bestimmt ist. Sie benötigen einen Inhaltsanbieter, um Ihre Datei in einem temporären Verzeichnis zu speichern und dann in Ihrem internen Speicher zu speichern.

0

Interner Speicher bedeutet den internen Speicher der Anwendung nicht den internen Speicher des Geräts. Auf den internen Speicher der App kann nur von der Anwendung selbst zugegriffen werden. Aus diesem Grund kann der Download Manager die Datei nicht direkt auf dem internen Speicher speichern.

Android Documentation

Es gibt eine Abhilfe für dieses. Sie können die Datei wie gewohnt auf einen externen Speicher herunterladen und dann im Broadcast-Empfänger in Ihr internes Verzeichnis der Anwendung kopieren.

Hoffe es hilft

Verwandte Themen