Added in API level 9

Request

open class Request
kotlin.Any
   ↳ android.app.DownloadManager.Request

This class contains all the information necessary to request a new download. The URI is the only required parameter. Note that the default download destination is a shared volume where the system might delete your file if it needs to reclaim space for system use. If this is a problem, use a location on external storage (see setDestinationUri(android.net.Uri).

Summary

Constants
static Int

Bit flag for setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_MOBILE.

static Int

Bit flag for setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_WIFI.

static Int

This download doesn't show in the UI or in the notifications.

static Int

This download is visible but only shows in the notifications while it's in progress.

static Int

This download is visible and shows in the notifications while in progress and after completion.

static Int

This download shows in the notifications after completion ONLY.

Public constructors
Request(uri: Uri!)

Public methods
open DownloadManager.Request!
addRequestHeader(header: String!, value: String!)

Add an HTTP header to be included with the download request.

open Unit

If the file to be downloaded is to be scanned by MediaScanner, this method should be called before DownloadManager#enqueue(Request) is called.

open DownloadManager.Request!

Restrict the types of networks over which this download may proceed.

open DownloadManager.Request!

Set whether this download may proceed over a metered network connection.

open DownloadManager.Request!

Set whether this download may proceed over a roaming connection.

open DownloadManager.Request!

Set a description of this download, to be displayed in notifications (if enabled)

open DownloadManager.Request!
setDestinationInExternalFilesDir(context: Context!, dirType: String!, subPath: String!)

Set the local destination for the downloaded file to a path within the application's external files directory (as returned by Context#getExternalFilesDir(String).

open DownloadManager.Request!

Set the local destination for the downloaded file to a path within the public external storage directory (as returned by Environment#getExternalStoragePublicDirectory(String)).

open DownloadManager.Request!

Set the local destination for the downloaded file.

open DownloadManager.Request!
setMimeType(mimeType: String!)

Set the MIME content type of this download.

open DownloadManager.Request!

Control whether a system notification is posted by the download manager while this download is running or when it is completed.

open DownloadManager.Request!
setRequiresCharging(requiresCharging: Boolean)

Specify that to run this download, the device needs to be plugged in.

open DownloadManager.Request!
setRequiresDeviceIdle(requiresDeviceIdle: Boolean)

Specify that to run, the download needs the device to be in idle mode.

open DownloadManager.Request!

Control whether a system notification is posted by the download manager while this download is running.

open DownloadManager.Request!

Set the title of this download, to be displayed in notifications (if enabled).

open DownloadManager.Request!

Set whether this download should be displayed in the system's Downloads UI.

Constants

NETWORK_MOBILE

Added in API level 9
static val NETWORK_MOBILE: Int

Bit flag for setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_MOBILE.

Value: 1

NETWORK_WIFI

Added in API level 9
static val NETWORK_WIFI: Int

Bit flag for setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_WIFI.

Value: 2

VISIBILITY_HIDDEN

Added in API level 11
static val VISIBILITY_HIDDEN: Int

This download doesn't show in the UI or in the notifications.

Value: 2

VISIBILITY_VISIBLE

Added in API level 11
static val VISIBILITY_VISIBLE: Int

This download is visible but only shows in the notifications while it's in progress.

Value: 0

VISIBILITY_VISIBLE_NOTIFY_COMPLETED

Added in API level 11
static val VISIBILITY_VISIBLE_NOTIFY_COMPLETED: Int

This download is visible and shows in the notifications while in progress and after completion.

Value: 1

VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION

Added in API level 12
static val VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION: Int

This download shows in the notifications after completion ONLY. It is usuable only with DownloadManager#addCompletedDownload(String, String,.

Value: 3

Public constructors

Request

Added in API level 9
Request(uri: Uri!)
Parameters
uri Uri!: the HTTP or HTTPS URI to download.

Public methods

addRequestHeader

Added in API level 9
open fun addRequestHeader(
    header: String!,
    value: String!
): DownloadManager.Request!

Add an HTTP header to be included with the download request. The header will be added to the end of the list.

Parameters
header String!: HTTP header name
value String!: header value
Return
DownloadManager.Request! this object

See Also

    allowScanningByMediaScanner

    Added in API level 11
    Deprecated in API level 29
    open fun allowScanningByMediaScanner(): Unit

    Deprecated: Starting in Q, this value is ignored. Files downloaded to directories owned by applications (e.g. Context#getExternalFilesDir(String)) will not be scanned by MediaScanner and the rest will be scanned.

    If the file to be downloaded is to be scanned by MediaScanner, this method should be called before DownloadManager#enqueue(Request) is called.

    setAllowedNetworkTypes

    Added in API level 9
    open fun setAllowedNetworkTypes(flags: Int): DownloadManager.Request!

    Restrict the types of networks over which this download may proceed. By default, all network types are allowed. Consider using setAllowedOverMetered(boolean) instead, since it's more flexible.

    As of android.os.Build.VERSION_CODES#N, setting only the NETWORK_WIFI flag here is equivalent to calling setAllowedOverMetered(boolean) with false.

    Parameters
    flags Int: any combination of the NETWORK_* bit flags.
    Return
    DownloadManager.Request! this object

    setAllowedOverMetered

    Added in API level 16
    open fun setAllowedOverMetered(allow: Boolean): DownloadManager.Request!

    Set whether this download may proceed over a metered network connection. By default, metered networks are allowed.

    setAllowedOverRoaming

    Added in API level 9
    open fun setAllowedOverRoaming(allowed: Boolean): DownloadManager.Request!

    Set whether this download may proceed over a roaming connection. By default, roaming is allowed.

    Parameters
    allowed Boolean: whether to allow a roaming connection to be used
    Return
    DownloadManager.Request! this object

    setDescription

    Added in API level 9
    open fun setDescription(description: CharSequence!): DownloadManager.Request!

    Set a description of this download, to be displayed in notifications (if enabled)

    Return
    DownloadManager.Request! this object

    setDestinationInExternalFilesDir

    Added in API level 9
    open fun setDestinationInExternalFilesDir(
        context: Context!,
        dirType: String!,
        subPath: String!
    ): DownloadManager.Request!

    Set the local destination for the downloaded file to a path within the application's external files directory (as returned by Context#getExternalFilesDir(String).

    The downloaded file is not scanned by MediaScanner. But it can be made scannable by calling allowScanningByMediaScanner().

    Parameters
    context Context!: the Context to use in determining the external files directory
    dirType String!: the directory type to pass to Context#getExternalFilesDir(String)
    subPath String!: the path within the external directory, including the destination filename
    Return
    DownloadManager.Request! this object
    Exceptions
    java.lang.IllegalStateException If the external storage directory cannot be found or created.

    setDestinationInExternalPublicDir

    Added in API level 9
    open fun setDestinationInExternalPublicDir(
        dirType: String!,
        subPath: String!
    ): DownloadManager.Request!

    Set the local destination for the downloaded file to a path within the public external storage directory (as returned by Environment#getExternalStoragePublicDirectory(String)).

    The downloaded file is not scanned by MediaScanner. But it can be made scannable by calling allowScanningByMediaScanner().

    For applications targeting android.os.Build.VERSION_CODES#Q or above, WRITE_EXTERNAL_STORAGE permission is not needed and the dirType must be one of the known public directories like Environment#DIRECTORY_DOWNLOADS, Environment#DIRECTORY_PICTURES, Environment#DIRECTORY_MOVIES, etc.

    Parameters
    dirType String!: the directory type to pass to Environment#getExternalStoragePublicDirectory(String)
    subPath String!: the path within the external directory, including the destination filename
    Return
    DownloadManager.Request! this object
    Exceptions
    java.lang.IllegalStateException If the external storage directory cannot be found or created.

    setDestinationUri

    Added in API level 9
    open fun setDestinationUri(uri: Uri!): DownloadManager.Request!

    Set the local destination for the downloaded file. Must be a file URI to a path on external storage, and the calling application must have the WRITE_EXTERNAL_STORAGE permission.

    The downloaded file is not scanned by MediaScanner. But it can be made scannable by calling allowScanningByMediaScanner().

    By default, downloads are saved to a generated filename in the shared download cache and may be deleted by the system at any time to reclaim space.

    For applications targeting android.os.Build.VERSION_CODES#Q or above, WRITE EXTERNAL_STORAGE permission is not needed and the uri must refer to a path within the directories owned by the application (e.g. Context#getExternalFilesDir(String)) or a path within the top-level Downloads directory (as returned by Environment#getExternalStoragePublicDirectory(String) with Environment#DIRECTORY_DOWNLOADS).

    Parameters
    uri Uri!: a file Uri indicating the destination for the downloaded file.
    Return
    DownloadManager.Request! this object

    setMimeType

    Added in API level 9
    open fun setMimeType(mimeType: String!): DownloadManager.Request!

    Set the MIME content type of this download. This will override the content type declared in the server's response.

    Return
    DownloadManager.Request! this object

    See Also

      setNotificationVisibility

      Added in API level 11
      open fun setNotificationVisibility(visibility: Int): DownloadManager.Request!

      Control whether a system notification is posted by the download manager while this download is running or when it is completed. If enabled, the download manager posts notifications about downloads through the system android.app.NotificationManager. By default, a notification is shown only when the download is in progress.

      It can take the following values: VISIBILITY_HIDDEN, VISIBILITY_VISIBLE, VISIBILITY_VISIBLE_NOTIFY_COMPLETED.

      If set to VISIBILITY_HIDDEN, this requires the permission android.permission.DOWNLOAD_WITHOUT_NOTIFICATION.

      Parameters
      visibility Int: the visibility setting value
      Return
      DownloadManager.Request! this object

      setRequiresCharging

      Added in API level 24
      open fun setRequiresCharging(requiresCharging: Boolean): DownloadManager.Request!

      Specify that to run this download, the device needs to be plugged in. This defaults to false.

      Parameters
      requiresCharging Boolean: Whether or not the device is plugged in.

      setRequiresDeviceIdle

      Added in API level 24
      open fun setRequiresDeviceIdle(requiresDeviceIdle: Boolean): DownloadManager.Request!

      Specify that to run, the download needs the device to be in idle mode. This defaults to false.

      Idle mode is a loose definition provided by the system, which means that the device is not in use, and has not been in use for some time.

      Parameters
      requiresDeviceIdle Boolean: Whether or not the device need be within an idle maintenance window.

      setShowRunningNotification

      Added in API level 9
      Deprecated in API level 15
      open fun setShowRunningNotification(show: Boolean): DownloadManager.Request!

      Deprecated: use setNotificationVisibility(int)

      Control whether a system notification is posted by the download manager while this download is running. If enabled, the download manager posts notifications about downloads through the system android.app.NotificationManager. By default, a notification is shown. If set to false, this requires the permission android.permission.DOWNLOAD_WITHOUT_NOTIFICATION.

      Parameters
      show Boolean: whether the download manager should show a notification for this download.
      Return
      DownloadManager.Request! this object

      setTitle

      Added in API level 9
      open fun setTitle(title: CharSequence!): DownloadManager.Request!

      Set the title of this download, to be displayed in notifications (if enabled). If no title is given, a default one will be assigned based on the download filename, once the download starts.

      Return
      DownloadManager.Request! this object

      setVisibleInDownloadsUi

      Added in API level 9
      Deprecated in API level 29
      open fun setVisibleInDownloadsUi(isVisible: Boolean): DownloadManager.Request!

      Deprecated: Starting in Q, this value is ignored. Only files downloaded to public Downloads directory (as returned by Environment#getExternalStoragePublicDirectory(String) with Environment#DIRECTORY_DOWNLOADS) will be visible in system's Downloads UI and the rest will not be visible. (e.g. Context#getExternalFilesDir(String)) will not be visible.

      Set whether this download should be displayed in the system's Downloads UI. True by default.

      Parameters
      isVisible Boolean: whether to display this download in the Downloads UI
      Return
      DownloadManager.Request! this object