Frage

Ich habe mich gefragt, was die Absicht zum Download URLs ist? Im Browser wird es Sachen mit einem wenig Benachrichtigungssymbol herunterladen. Ich habe mich gefragt, ob ich diese Absicht verwenden kann (und was es ist).

War es hilfreich?

Lösung

Anwendungen können Dateien mit dem Download-Manager herunterladen wie Browser und gmail. Dies ist verfügbar ab Lebkuchen.

Ihre App muss die INTERNET die Erlaubnis, einen Download zu starten. Um die Datei im Standard-Download-Verzeichnis speichert es muss auch die WRITE_EXTERNAL_STORAGE Erlaubnis.

Hier ist, wie können Sie eine URI herunterladen:

DownloadManager.Request r = new DownloadManager.Request(uri);

// This put the download in the same Download dir the browser uses
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName");

// When downloading music and videos they will be listed in the player
// (Seems to be available since Honeycomb only)
r.allowScanningByMediaScanner();

// Notify user when download is completed
// (Seems to be available since Honeycomb only)
r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// Start download
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);

Es gibt eine Reihe anderer Optionen für die Benachrichtigung Anpassen Abfrage der Download-Zustand und Einstellung der Download-Adresse.

Dieser Blog-Eintrag zeigt, wie Sie den Download-Manager in früheren Versionen von Android verwenden könnten über versteckte APIs.

Andere Tipps

Während ich nicht glaube, es ist ein Download-Intent im Browser, können Sie wahrscheinlich ein normales ACTION_VIEW Intent verwenden und den Browser entscheiden, ob es sollte die URL basierend auf dem Content-Type anzuzeigen oder herunterzuladen.

So aus dem Code-Trigger

new Intent(Intent.ACTION_VIEW, Uri.parse(url))

und hoffen, dass dies einen Download im Browser auslöst.

Was wollen Sie tun? Wenn Ihre App eine Datei herunterladen wollen, können Sie den URLConnection-Code verwenden. Wenn Sie ein Paket herunterladen wollen, dann sollten ACTION_PACKAGE_INSTALL tun, was Sie wollen.

Hier finden Sie aktuelle hier auf allen Android Intents.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top