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 |
static Int |
Bit flag for |
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 | |
---|---|
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 |
open DownloadManager.Request! |
setAllowedNetworkTypes(flags: Int) Restrict the types of networks over which this download may proceed. |
open DownloadManager.Request! |
setAllowedOverMetered(allow: Boolean) Set whether this download may proceed over a metered network connection. |
open DownloadManager.Request! |
setAllowedOverRoaming(allowed: Boolean) Set whether this download may proceed over a roaming connection. |
open DownloadManager.Request! |
setDescription(description: CharSequence!) 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 |
open DownloadManager.Request! |
setDestinationInExternalPublicDir(dirType: String!, subPath: String!) Set the local destination for the downloaded file to a path within the public external storage directory (as returned by |
open DownloadManager.Request! |
setDestinationUri(uri: Uri!) 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! |
setNotificationVisibility(visibility: Int) 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! |
setTitle(title: CharSequence!) Set the title of this download, to be displayed in notifications (if enabled). |
open DownloadManager.Request! |
setVisibleInDownloadsUi(isVisible: Boolean) Set whether this download should be displayed in the system's Downloads UI. |
Constants
NETWORK_MOBILE
static val NETWORK_MOBILE: Int
Bit flag for setAllowedNetworkTypes
corresponding to ConnectivityManager#TYPE_MOBILE
.
Value: 1
NETWORK_WIFI
static val NETWORK_WIFI: Int
Bit flag for setAllowedNetworkTypes
corresponding to ConnectivityManager#TYPE_WIFI
.
Value: 2
VISIBILITY_HIDDEN
static val VISIBILITY_HIDDEN: Int
This download doesn't show in the UI or in the notifications.
Value: 2
VISIBILITY_VISIBLE
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
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
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
Request(uri: Uri!)
Parameters | |
---|---|
uri |
Uri!: the HTTP or HTTPS URI to download. |
Public methods
addRequestHeader
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
open funallowScanningByMediaScanner(): 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
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
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
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
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
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
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
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
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
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
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
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
open funsetShowRunningNotification(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
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
open funsetVisibleInDownloadsUi(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 |