Android: Wie verwende ich die Download-Manager-Klasse?

Lesezeit: 3 Minuten

Android Wie verwende ich die Download Manager Klasse
Kris

Ich möchte eine Binärdatei von einer URL herunterladen. Ist es möglich, die Android-Download-Manager-Klasse zu verwenden, die ich hier gefunden habe? DownloadManager-Klasse?

1641722604 676 Android Wie verwende ich die Download Manager Klasse
CommonsWare

Ist es möglich, die Android-Download-Manager-Klasse zu verwenden, die ich hier gefunden habe?

Ja, allerdings erst ab Android API Level 9 (Version 2.3). Hier ist ein Beispielprojekt demonstrieren die Verwendung von DownloadManager.

  • @CommonsWare.. Ich habe Ihren gesamten Code durchgesehen. Alle sind großartig. Ich möchte den DownloadManager mit WLAN verwenden. Ich muss SFTP verwenden und die Datei vom Router herunterladen. Ist das möglich? werden pls mich dazu führen..

    – NovusMobile

    7. Juni ’12 um 12:55


  • @Satyam: DownloadManager unterstützt kein SFTP. Nichts in Android unterstützt SFTP AFAIK. Dafür müssen Sie ein JAR eines Drittanbieters finden.

    – CommonsWare

    7. Juni ’12 um 12:58

  • Ich habe die API gefunden, die ich im Java-Namen “JSCH” verwendet habe. @ CommonsWare In meinem Java-Projekt läuft es perfekt, aber hier Android ist es nicht.. ist es möglich? oder kann ich mit einem anderen Problem konfrontiert werden? bitte antworte..

    – NovusMobile

    7. Juni ’12 um 13:05


  • @Satyam: Wenn Sie in der oberen rechten Ecke dieser Seite nachsehen, sollten Sie einen Link “Frage stellen” sehen. Das wird verwendet, um Fragen zu stellen. Kommentare in StackOverflow eignen sich gut für Klarstellungen vorhandener Antworten, aber nicht für so verwandte Themen.

    – CommonsWare

    7. Juni ’12 um 13:12

  • Das tut mir sehr leid. Ich habe die Frage bereits gestellt :stackoverflow.com/questions/10927102/… Habe in aller Eile vergessen, dir den Link zu senden… Es ist wahr, dass niemand geantwortet hat, bis…

    – NovusMobile

    7. Juni ’12 um 13:20


Verwenden Sie die DownloadManager-Klasse (nur GingerBread und neuer)

GingerBread hat eine neue Funktion, DownloadManager, eingeführt, mit der Sie Dateien einfach herunterladen und die harte Arbeit der Bearbeitung von Threads, Streams usw. an das System delegieren können.

Sehen wir uns zunächst eine Dienstprogrammmethode an:

/**
 * @param context used to check the device version and DownloadManager information
 * @return true if the download manager is available
 */
public static boolean isDownloadManagerAvailable(Context context) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
        return true;
    }
    return false;
}

Der Name der Methode erklärt alles. Sobald Sie sicher sind, dass DownloadManager verfügbar ist, können Sie Folgendes tun:

String url = "url you want to download";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Some descrition");
request.setTitle("Some title");
// in order for this if to run, you must use the android 3.2 to compile your app
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "name-of-the-file.ext");

// get download service and enqueue file
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);

Der Download-Fortschritt wird in der Benachrichtigungsleiste angezeigt.

1641722604 72 Android Wie verwende ich die Download Manager Klasse
Dmarp

DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://www.example.com/myfile.mp3");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle("My File");
request.setDescription("Downloading");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationUri(Uri.parse("file://" + folderName + "/myfile.mp3"));
downloadmanager.enqueue(request);

Android Wie verwende ich die Download Manager Klasse
AUFENTHALT

Stellen Sie sicher, dass sich die Berechtigungen READ_EXTERNAL_STORAGE und WRITE_EXTERNAL_STORAGE in Ihrer Datei Manifest.xml befinden:

Und dann füge diesen Code in deine Downloadfunktion ein

if(ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
    || ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
    
    // this will request for permission when user has not granted permission for the app
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}

else{
    //Download Script
    DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
    Uri uri = Uri.parse("URL of file to download");
    DownloadManager.Request request = new DownloadManager.Request(uri);
    request.setVisibleInDownloadsUi(true);
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, uri.getLastPathSegment());
    downloadManager.enqueue(request);
}

.

208050cookie-checkAndroid: Wie verwende ich die Download-Manager-Klasse?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy