DownloadManager.Request
  public
  static
  
  
  class
  DownloadManager.Request
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | 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 | |
|---|---|
| int | NETWORK_MOBILEBit flag for  | 
| int | NETWORK_WIFIBit flag for  | 
| int | VISIBILITY_HIDDENThis download doesn't show in the UI or in the notifications. | 
| int | VISIBILITY_VISIBLEThis download is visible but only shows in the notifications while it's in progress. | 
| int | VISIBILITY_VISIBLE_NOTIFY_COMPLETEDThis download is visible and shows in the notifications while in progress and after completion. | 
| int | VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETIONThis download shows in the notifications after completion ONLY. | 
| Public constructors | |
|---|---|
| 
      Request(Uri uri)
       | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        DownloadManager.Request | 
      addRequestHeader(String header, String value)
      Add an HTTP header to be included with the download request. | 
| 
        
        
        
        
        
        void | 
      allowScanningByMediaScanner()
      
      This method was deprecated
      in API level 29.
    Starting in Q, this value is ignored. Files downloaded to
 directories owned by applications (e.g.  | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setAllowedNetworkTypes(int flags)
      Restrict the types of networks over which this download may proceed. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setAllowedOverMetered(boolean allow)
      Set whether this download may proceed over a metered network connection. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setAllowedOverRoaming(boolean allowed)
      Set whether this download may proceed over a roaming connection. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setDescription(CharSequence description)
      Set a description of this download, to be displayed in notifications (if enabled) | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setDestinationInExternalFilesDir(Context context, String dirType, String subPath)
      Set the local destination for the downloaded file to a path within
 the application's external files directory (as returned by
  | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setDestinationInExternalPublicDir(String dirType, String subPath)
      Set the local destination for the downloaded file to a path within
 the public external storage directory (as returned by
  | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setDestinationUri(Uri uri)
      Set the local destination for the downloaded file. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setMimeType(String mimeType)
      Set the MIME content type of this download. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setNotificationVisibility(int visibility)
      Control whether a system notification is posted by the download manager while this download is running or when it is completed. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setRequiresCharging(boolean requiresCharging)
      Specify that to run this download, the device needs to be plugged in. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setRequiresDeviceIdle(boolean requiresDeviceIdle)
      Specify that to run, the download needs the device to be in idle mode. | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setShowRunningNotification(boolean show)
      
      This method was deprecated
      in API level 15.
    use  | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setTitle(CharSequence title)
      Set the title of this download, to be displayed in notifications (if enabled). | 
| 
        
        
        
        
        
        DownloadManager.Request | 
      setVisibleInDownloadsUi(boolean isVisible)
      
      This method was deprecated
      in API level 29.
    Starting in Q, this value is ignored. Only files downloaded to
 public Downloads directory (as returned by
  | 
| Inherited methods | |
|---|---|
Constants
NETWORK_MOBILE
public static final int NETWORK_MOBILE
Bit flag for setAllowedNetworkTypes(int) corresponding to
 ConnectivityManager.TYPE_MOBILE.
Constant Value: 1 (0x00000001)
NETWORK_WIFI
public static final int NETWORK_WIFI
Bit flag for setAllowedNetworkTypes(int) corresponding to
 ConnectivityManager.TYPE_WIFI.
Constant Value: 2 (0x00000002)
VISIBILITY_HIDDEN
public static final int VISIBILITY_HIDDEN
This download doesn't show in the UI or in the notifications.
Constant Value: 2 (0x00000002)
VISIBILITY_VISIBLE
public static final int VISIBILITY_VISIBLE
This download is visible but only shows in the notifications while it's in progress.
Constant Value: 0 (0x00000000)
VISIBILITY_VISIBLE_NOTIFY_COMPLETED
public static final int VISIBILITY_VISIBLE_NOTIFY_COMPLETED
This download is visible and shows in the notifications while in progress and after completion.
Constant Value: 1 (0x00000001)
VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION
public static final int VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION
This download shows in the notifications after completion ONLY.
 It is usuable only with
 DownloadManager.addCompletedDownload(String, String,
 boolean, String, String, long, boolean).
Constant Value: 3 (0x00000003)
Public constructors
Request
public Request (Uri uri)
| Parameters | |
|---|---|
| uri | Uri: the HTTP or HTTPS URI to download. | 
Public methods
addRequestHeader
public DownloadManager.Request addRequestHeader (String header, String value)
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 | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
See also:
allowScanningByMediaScanner
public void allowScanningByMediaScanner ()
      This method was deprecated
      in API level 29.
    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
public DownloadManager.Request setAllowedNetworkTypes (int flags)
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 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. | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setAllowedOverMetered
public DownloadManager.Request setAllowedOverMetered (boolean allow)
Set whether this download may proceed over a metered network connection. By default, metered networks are allowed.
| Parameters | |
|---|---|
| allow | boolean | 
| Returns | |
|---|---|
| DownloadManager.Request | |
setAllowedOverRoaming
public DownloadManager.Request setAllowedOverRoaming (boolean allowed)
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 | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setDescription
public DownloadManager.Request setDescription (CharSequence description)
Set a description of this download, to be displayed in notifications (if enabled)
| Parameters | |
|---|---|
| description | CharSequence | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setDestinationInExternalFilesDir
public DownloadManager.Request setDestinationInExternalFilesDir (Context context, String dirType, String subPath)
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: theContextto use in determining the external
            files directory | 
| dirType | String: the directory type to pass toContext.getExternalFilesDir(String) | 
| subPath | String: the path within the external directory, including the
            destination filename | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
| Throws | |
|---|---|
| IllegalStateException | If the external storage directory cannot be found or created. | 
setDestinationInExternalPublicDir
public DownloadManager.Request setDestinationInExternalPublicDir (String dirType, String subPath)
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 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 toEnvironment.getExternalStoragePublicDirectory(String) | 
| subPath | String: the path within the external directory, including the
            destination filename | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
| Throws | |
|---|---|
| IllegalStateException | If the external storage directory cannot be found or created. | 
setDestinationUri
public DownloadManager.Request setDestinationUri (Uri uri)
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 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).
 All non-visible downloads that are not modified in the last 7 days will be deleted during
 idle runs.
| Parameters | |
|---|---|
| uri | Uri: a fileUriindicating the destination for the downloaded file. | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setMimeType
public DownloadManager.Request setMimeType (String mimeType)
Set the MIME content type of this download. This will override the content type declared in the server's response.
| Parameters | |
|---|---|
| mimeType | String | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
See also:
setNotificationVisibility
public DownloadManager.Request setNotificationVisibility (int visibility)
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 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 | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setRequiresCharging
public DownloadManager.Request setRequiresCharging (boolean requiresCharging)
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. | 
| Returns | |
|---|---|
| DownloadManager.Request | |
setRequiresDeviceIdle
public DownloadManager.Request setRequiresDeviceIdle (boolean requiresDeviceIdle)
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. | 
| Returns | |
|---|---|
| DownloadManager.Request | |
setShowRunningNotification
public DownloadManager.Request setShowRunningNotification (boolean show)
      This method was deprecated
      in API level 15.
    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 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. | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setTitle
public DownloadManager.Request setTitle (CharSequence title)
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.
| Parameters | |
|---|---|
| title | CharSequence | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
setVisibleInDownloadsUi
public DownloadManager.Request setVisibleInDownloadsUi (boolean isVisible)
      This method was deprecated
      in API level 29.
    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. All non-visible downloads that are not modified
 in the last 7 days will be deleted during idle runs.
 (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 | 
| Returns | |
|---|---|
| DownloadManager.Request | this object | 
