Android Download Intent

前端 未结 4 741
眼角桃花
眼角桃花 2020-12-14 15:06

I was wondering what is the intent for downloading URLs? In the browser, it will download stuff with a little notification icon. I was wondering if I can use that intent (an

相关标签:
4条回答
  • 2020-12-14 15:14

    What are you trying to do? If your app wants to download a file you can use the UrlConnection code. If you want to download a package then ACTION_PACKAGE_INSTALL should do what you want.

    0 讨论(0)
  • 2020-12-14 15:20

    Applications can download files with the download manager just like the browser and gmail. This is available starting with Gingerbread.

    Your app needs the INTERNET permission to initiate a download. To save the file in the default Download directory it also needs the WRITE_EXTERNAL_STORAGE permission.

    Here's how you can download an URI:

    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);
    

    There are a bunch of other options for customizing the notification, querying the download state and setting the download location.

    This blog post shows how you could use the download manager on previous versions of Android via hidden APIs.

    0 讨论(0)
  • 2020-12-14 15:21

    Have a look here at all the Android Intents.

    0 讨论(0)
  • 2020-12-14 15:33

    While I don't believe there is a download Intent in the browser, you can probably use a normal ACTION_VIEW Intent and have the browser decide if it should download or view the url based on the content-type.

    So from your code trigger

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

    and hope this triggers a download in the browser.

    0 讨论(0)
提交回复
热议问题