Most visited

Recently visited

Added in API level 9

DownloadManager

public class DownloadManager
extends Object

java.lang.Object
   ↳ android.app.DownloadManager


下载管理器是一个处理长时间运行的HTTP下载的系统服务。 客户可能会要求将URI下载到特定的目标文件。 下载管理器将在后台进行下载,负责HTTP交互并在故障后或重新连接更改和系统重新启动后重试下载。 应通过getSystemService(String)通过DOWNLOAD_SERVICE获得getSystemService(String)DOWNLOAD_SERVICE 通过此API请求下载的应用程序应该注册一个广播接收器ACTION_NOTIFICATION_CLICKED以便在用户点击通知中的下载内容或从下载UI中点击正确的时候进行处理。 请注意,该应用程序必须具有使用此类的INTERNET权限。

Summary

Nested classes

class DownloadManager.Query

该类可用于过滤下载管理器查询。

class DownloadManager.Request

该类包含请求新下载所需的全部信息。

Constants

String ACTION_DOWNLOAD_COMPLETE

下载完成后,下载管理器发送的广播意图操作。

String ACTION_NOTIFICATION_CLICKED

当用户从系统通知或下载用户界面点击正在运行的下载时,下载管理器发送的广播意图操作。

String ACTION_VIEW_DOWNLOADS

意图操作以启动显示所有下载的活动。

String COLUMN_BYTES_DOWNLOADED_SO_FAR

到目前为止下载的字节数。

String COLUMN_DESCRIPTION

客户端提供的此下载说明。

String COLUMN_ID

系统中唯一特定下载的标识符。

String COLUMN_LAST_MODIFIED_TIMESTAMP

上次修改下载时的时间戳, System.currentTimeMillis() (UTC时钟时间)。

String COLUMN_LOCAL_FILENAME

此常量在API级别24中已弃用。应用程序应转换为使用openFileDescriptor(Uri, String)

String COLUMN_LOCAL_URI

Uri下载的文件将被保存。

String COLUMN_MEDIAPROVIDER_URI

MediaProvider中用于此下载条目的相应条目的URI。

String COLUMN_MEDIA_TYPE

互联网媒体下载文件的类型。

String COLUMN_REASON

提供有关下载状态的更多详细信息。

String COLUMN_STATUS

下载的当前状态,作为STATUS_ *常量之一。

String COLUMN_TITLE

客户提供的此下载标题。

String COLUMN_TOTAL_SIZE_BYTES

下载的总大小(以字节为单位)。

String COLUMN_URI

要下载的URI。

int ERROR_CANNOT_RESUME

当发生一些可能的暂时错误时, COLUMN_REASON ,但我们无法恢复下载。

int ERROR_DEVICE_NOT_FOUND

未找到外部存储设备时的 COLUMN_REASON

int ERROR_FILE_ALREADY_EXISTS

当请求的目标文件已存在时(下载管理器不会覆盖现有文件), COLUMN_REASON

int ERROR_FILE_ERROR

COLUMN_REASON值在发生存储问题时不符合任何其他错误代码。

int ERROR_HTTP_DATA_ERROR

在HTTP级别发生接收或处理数据的错误时, COLUMN_REASON

int ERROR_INSUFFICIENT_SPACE

当存储空间不足时, COLUMN_REASON

int ERROR_TOO_MANY_REDIRECTS

当重定向过多时, COLUMN_REASON

int ERROR_UNHANDLED_HTTP_CODE

当收到下载管理器无法处理的HTTP代码时, COLUMN_REASON值。

int ERROR_UNKNOWN

下载完成时COLUMN_ERROR_CODE的值的错误不符合任何其他错误代码。

String EXTRA_DOWNLOAD_ID

意图额外包含 ACTION_DOWNLOAD_COMPLETE意图,指示刚刚完成的下载的ID(作为一长)。

String EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS

当收到对多个通知的点击时,以下提供了与下载通知相对应的下载id数组,该下载通知被点击。

String INTENT_EXTRAS_SORT_BY_SIZE

意向额外包含在 ACTION_VIEW_DOWNLOADS以按尺寸排序模式启动DownloadApp。

int PAUSED_QUEUED_FOR_WIFI

当下载超过移动网络的下载大小限制并且下载管理器正在等待Wi-Fi连接继续时, COLUMN_REASON

int PAUSED_UNKNOWN

由于某些其他原因下载暂停时, COLUMN_REASON值。

int PAUSED_WAITING_FOR_NETWORK

当下载正在等待网络连接继续时, COLUMN_REASON

int PAUSED_WAITING_TO_RETRY

下载暂停时的值为 COLUMN_REASON ,因为发生了一些网络错误,并且下载管理器在重试请求之前正在等待。

int STATUS_FAILED

当下载失败(并且不会被重试)时, COLUMN_STATUS

int STATUS_PAUSED

当下载正在等待重试或恢复时, COLUMN_STATUS

int STATUS_PENDING

当下载等待开始时, COLUMN_STATUS

int STATUS_RUNNING

下载当前正在运行时的值为 COLUMN_STATUS

int STATUS_SUCCESSFUL

下载成功完成后, COLUMN_STATUS值。

Public methods

long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification)

将文件添加到下载数据库系统,以便它可以出现在下载应用程序中(因此可以通过下载应用程序进行管理)。

long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, Uri uri, Uri referer)

将文件添加到下载数据库系统,以便它可以出现在下载应用程序中(因此可以通过下载应用程序进行管理)。

long enqueue(DownloadManager.Request request)

排队一个新的下载。

static Long getMaxBytesOverMobile(Context context)

返回可能通过移动连接进行下载的最大大小(以字节为单位); 如果没有限制,则返回null

String getMimeTypeForDownloadedFile(long id)

如果文件已成功下载,则返回给定下载文件ID的媒体类型。

static Long getRecommendedMaxBytesOverMobile(Context context)

返回可能通过移动连接进行下载的建议最大大小(以字节为单位); 如果没有建议的限制,则为null。

Uri getUriForDownloadedFile(long id)

如果文件成功下载,则返回给定下载文件ID的 Uri

ParcelFileDescriptor openDownloadedFile(long id)

打开下载的文件以供阅读。

Cursor query(DownloadManager.Query query)

向下载管理器询问已下载的请求。

int remove(long... ids)

取消下载并将其从下载管理器中删除。

Inherited methods

From class java.lang.Object

Constants

ACTION_DOWNLOAD_COMPLETE

Added in API level 9
String ACTION_DOWNLOAD_COMPLETE

下载完成后,下载管理器发送的广播意图操作。

常量值:“android.intent.action.DOWNLOAD_COMPLETE”

ACTION_NOTIFICATION_CLICKED

Added in API level 9
String ACTION_NOTIFICATION_CLICKED

当用户从系统通知或下载用户界面点击正在运行的下载时,下载管理器发送的广播意图操作。

常量值:“android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED”

ACTION_VIEW_DOWNLOADS

Added in API level 9
String ACTION_VIEW_DOWNLOADS

意图操作以启动显示所有下载的活动。

常量值:“android.intent.action.VIEW_DOWNLOADS”

COLUMN_BYTES_DOWNLOADED_SO_FAR

Added in API level 9
String COLUMN_BYTES_DOWNLOADED_SO_FAR

到目前为止下载的字节数。

常量值:“bytes_so_far”

COLUMN_DESCRIPTION

Added in API level 9
String COLUMN_DESCRIPTION

客户端提供的此下载说明。 这将显示在系统通知中。 缺省为空字符串。

常量值:“描述”

COLUMN_ID

Added in API level 9
String COLUMN_ID

系统中唯一特定下载的标识符。 客户使用此ID进行与下载相关的后续呼叫。

常量值:“_id”

COLUMN_LAST_MODIFIED_TIMESTAMP

Added in API level 9
String COLUMN_LAST_MODIFIED_TIMESTAMP

上次修改下载时的时间戳, System.currentTimeMillis() (以UTC表示的挂钟时间)。

常量值:“last_modified_timestamp”

COLUMN_LOCAL_FILENAME

Added in API level 11
String COLUMN_LOCAL_FILENAME

此常数在API级别24中已弃用。
应用程序应该转换为使用openFileDescriptor(Uri, String)

磁盘上下载的文件的路径。

请注意,应用程序可能没有文件系统权限来直接访问此路径。 应用程序应该使用openFileDescriptor(Uri, String)来获得访问权限,而不是直接打开此路径。

常量值:“local_filename”

COLUMN_LOCAL_URI

Added in API level 9
String COLUMN_LOCAL_URI

Uri下载的文件将被保存。 如果客户端提供了目的地,那么将在这里使用该URI。 否则,该值最初将为空,并且一旦开始下载,就会用生成的URI填充该值。

常量值:“local_uri”

COLUMN_MEDIAPROVIDER_URI

Added in API level 9
String COLUMN_MEDIAPROVIDER_URI

MediaProvider中用于此下载条目的相应条目的URI。 它用于从MediaProvider数据库中删除从下载列表中删除的条目。

常量值:“mediaprovider_uri”

COLUMN_MEDIA_TYPE

Added in API level 9
String COLUMN_MEDIA_TYPE

互联网媒体下载文件的类型。 如果在创建时没有提供任何值,则它将初始为空,并且将在下载开始后根据服务器的响应进行填充。

也可以看看:

常量值:“media_type”

COLUMN_REASON

Added in API level 9
String COLUMN_REASON

提供有关下载状态的更多详细信息。 它的含义取决于COLUMN_STATUS的值。 COLUMN_STATUSSTATUS_FAILED ,这表示发生的错误类型。 如果发生HTTP错误,它将保存RFC 2616中定义的HTTP状态代码。否则,它将保存一个ERROR_ *常量。 COLUMN_STATUSSTATUS_PAUSED ,这表明下载暂停的原因。 它将保存一个PAUSED_ *常量。 如果COLUMN_STATUS既不是STATUS_FAILED也不是STATUS_PAUSED ,则此列的值未定义。

也可以看看:

常数值:“原因”

COLUMN_STATUS

Added in API level 9
String COLUMN_STATUS

下载的当前状态,作为STATUS_ *常量之一。

常数值:“状态”

COLUMN_TITLE

Added in API level 9
String COLUMN_TITLE

客户提供的此下载标题。 这将显示在系统通知中。 缺省为空字符串。

常量值:“标题”

COLUMN_TOTAL_SIZE_BYTES

Added in API level 9
String COLUMN_TOTAL_SIZE_BYTES

下载的总大小(以字节为单位)。 这将最初为-1,并将在下载开始后填写。

常量值:“total_size”

COLUMN_URI

Added in API level 9
String COLUMN_URI

要下载的URI。

常数值:“uri”

ERROR_CANNOT_RESUME

Added in API level 9
int ERROR_CANNOT_RESUME

当发生一些可能的暂时错误时, COLUMN_REASON值,但我们无法恢复下载。

常数值:1008(0x000003f0)

ERROR_DEVICE_NOT_FOUND

Added in API level 9
int ERROR_DEVICE_NOT_FOUND

没有找到外部存储设备时的COLUMN_REASON 通常,这是因为SD卡没有安装。

常量值:1007(0x000003ef)

ERROR_FILE_ALREADY_EXISTS

Added in API level 9
int ERROR_FILE_ALREADY_EXISTS

当请求的目标文件已存在时(下载管理器不会覆盖现有文件), COLUMN_REASON

常量值:1009(0x000003f1)

ERROR_FILE_ERROR

Added in API level 9
int ERROR_FILE_ERROR

COLUMN_REASON值在出现存储问题时不符合任何其他错误代码。 适当时使用更具体的ERROR_INSUFFICIENT_SPACEERROR_DEVICE_NOT_FOUND

常量值:1001(0x000003e9)

ERROR_HTTP_DATA_ERROR

Added in API level 9
int ERROR_HTTP_DATA_ERROR

在HTTP级别发生接收或处理数据的错误时, COLUMN_REASON

常量值:1004(0x000003ec)

ERROR_INSUFFICIENT_SPACE

Added in API level 9
int ERROR_INSUFFICIENT_SPACE

当存储空间不足时, COLUMN_REASON 通常,这是因为SD卡已满。

常量值:1006(0x000003ee)

ERROR_TOO_MANY_REDIRECTS

Added in API level 9
int ERROR_TOO_MANY_REDIRECTS

当重定向太多时, COLUMN_REASON

常量值:1005(0x000003ed)

ERROR_UNHANDLED_HTTP_CODE

Added in API level 9
int ERROR_UNHANDLED_HTTP_CODE

当收到HTTP代码时,下载管理器无法处理的 COLUMN_REASON

常量值:1002(0x000003ea)

ERROR_UNKNOWN

Added in API level 9
int ERROR_UNKNOWN

下载完成时COLUMN_ERROR_CODE的值的错误不符合任何其他错误代码。

常量值:1000(0x000003e8)

EXTRA_DOWNLOAD_ID

Added in API level 9
String EXTRA_DOWNLOAD_ID

意图额外包含在 ACTION_DOWNLOAD_COMPLETE意图中,指示刚刚完成的下载的ID(作为一长)。

常量值:“extra_download_id”

EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS

Added in API level 11
String EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS

当收到对多个通知的点击时,以下提供了与下载通知相对应的下载id数组,该下载通知被点击。 它可以由使用getLongArrayExtra(String)的这个意图的接收器检索。

常量值:“extra_click_download_ids”

INTENT_EXTRAS_SORT_BY_SIZE

Added in API level 12
String INTENT_EXTRAS_SORT_BY_SIZE

意向额外包含在 ACTION_VIEW_DOWNLOADS以按尺寸排序模式启动DownloadApp。

常量值:“android.app.DownloadManager.extra_sortBySize”

PAUSED_QUEUED_FOR_WIFI

Added in API level 9
int PAUSED_QUEUED_FOR_WIFI

当下载超过移动网络下载的大小限制并且下载管理器正在等待Wi-Fi连接继续时, COLUMN_REASON

常量值:3(0x00000003)

PAUSED_UNKNOWN

Added in API level 9
int PAUSED_UNKNOWN

由于其他原因下载暂停时, COLUMN_REASON值。

常量值:4(0x00000004)

PAUSED_WAITING_FOR_NETWORK

Added in API level 9
int PAUSED_WAITING_FOR_NETWORK

当下载正在等待网络连接继续时, COLUMN_REASON

常量值:2(0x00000002)

PAUSED_WAITING_TO_RETRY

Added in API level 9
int PAUSED_WAITING_TO_RETRY

当下载暂停时,由于发生了一些网络错误,并且下载管理器在重试请求之前正在等待,因此 COLUMN_REASON

常数值:1(0x00000001)

STATUS_FAILED

Added in API level 9
int STATUS_FAILED

当下载失败(并且不会被重试)时, COLUMN_STATUS

常量值:16(0x00000010)

STATUS_PAUSED

Added in API level 9
int STATUS_PAUSED

当下载等待重试或恢复时, COLUMN_STATUS

常量值:4(0x00000004)

STATUS_PENDING

Added in API level 9
int STATUS_PENDING

当下载等待开始时, COLUMN_STATUS

常数值:1(0x00000001)

STATUS_RUNNING

Added in API level 9
int STATUS_RUNNING

当下载正在运行时, COLUMN_STATUS

常量值:2(0x00000002)

STATUS_SUCCESSFUL

Added in API level 9
int STATUS_SUCCESSFUL

下载成功完成后, COLUMN_STATUS

常量值:8(0x00000008)

Public methods

addCompletedDownload

Added in API level 12
long addCompletedDownload (String title, 
                String description, 
                boolean isMediaScannerScannable, 
                String mimeType, 
                String path, 
                long length, 
                boolean showNotification)

将文件添加到下载数据库系统,以便它可以出现在下载应用程序中(因此可以通过下载应用程序进行管理)。

通过将参数isMediaScannerScannable设置为true,使MediaScanner可扫描文件很有帮助。 它使文件在管理应用程序(例如Gallery App)的媒体中可见,这可能是使用此API的有用目的。

Parameters
title String: the title that would appear for this file in Downloads App.
description String: the description that would appear for this file in Downloads App.
isMediaScannerScannable boolean: true if the file is to be scanned by MediaScanner. Files scanned by MediaScanner appear in the applications used to view media (for example, Gallery app).
mimeType String: mimetype of the file.
path String: absolute pathname to the file. The file should be world-readable, so that it can be managed by the Downloads App and any other app that is used to read it (for example, Gallery app to display the file, if the file contents represent a video/image).
length long: length of the downloaded file
showNotification boolean: true if a notification is to be sent, false otherwise
Returns
long an ID for the download entry added to the downloads app, unique across the system This ID is used to make future calls related to this download.

addCompletedDownload

Added in API level 24
long addCompletedDownload (String title, 
                String description, 
                boolean isMediaScannerScannable, 
                String mimeType, 
                String path, 
                long length, 
                boolean showNotification, 
                Uri uri, 
                Uri referer)

将文件添加到下载数据库系统,以便它可以出现在下载应用程序中(因此可以通过下载应用程序进行管理)。

通过将参数isMediaScannerScannable设置为true,使MediaScanner可扫描文件很有帮助。 它使文件在管理应用程序(例如Gallery App)的媒体中可见,这可能是使用此API的有用目的。

Parameters
title String: the title that would appear for this file in Downloads App.
description String: the description that would appear for this file in Downloads App.
isMediaScannerScannable boolean: true if the file is to be scanned by MediaScanner. Files scanned by MediaScanner appear in the applications used to view media (for example, Gallery app).
mimeType String: mimetype of the file.
path String: absolute pathname to the file. The file should be world-readable, so that it can be managed by the Downloads App and any other app that is used to read it (for example, Gallery app to display the file, if the file contents represent a video/image).
length long: length of the downloaded file
showNotification boolean: true if a notification is to be sent, false otherwise
uri Uri: the original HTTP URI of the download
referer Uri: the HTTP Referer for the download
Returns
long an ID for the download entry added to the downloads app, unique across the system This ID is used to make future calls related to this download.

enqueue

Added in API level 9
long enqueue (DownloadManager.Request request)

排队一个新的下载。 一旦下载管理器准备好执行并且连接可用,下载将自动开始。

Parameters
request DownloadManager.Request: the parameters specifying this download
Returns
long an ID for the download, unique across the system. This ID is used to make future calls related to this download.

getMaxBytesOverMobile

Added in API level 11
Long getMaxBytesOverMobile (Context context)

返回可能通过移动连接进行下载的最大大小(以字节为单位); 如果没有限制,则返回null

Parameters
context Context: the Context to use for accessing the ContentResolver
Returns
Long maximum size, in bytes, of downloads that may go over a mobile connection; or null if there's no limit

getMimeTypeForDownloadedFile

Added in API level 11
String getMimeTypeForDownloadedFile (long id)

如果文件已成功下载,则返回给定下载文件ID的媒体类型。 否则,返回null。

Parameters
id long: the id of the downloaded file.
Returns
String the media type of the given downloaded file id, if download was successful. null otherwise.

getRecommendedMaxBytesOverMobile

Added in API level 11
Long getRecommendedMaxBytesOverMobile (Context context)

返回可能通过移动连接进行下载的建议最大大小(以字节为单位); 如果没有建议的限制,则为null。 用户可以选择绕过此限制。

Parameters
context Context: the Context to use for accessing the ContentResolver
Returns
Long recommended maximum size, in bytes, of downloads that may go over a mobile connection; or null if there's no recommended limit.

getUriForDownloadedFile

Added in API level 11
Uri getUriForDownloadedFile (long id)

如果文件成功下载,则返回给定下载文件ID的Uri 否则,返回null。

Parameters
id long: the id of the downloaded file.
Returns
Uri the Uri of the given downloaded file id, if download was successful. null otherwise.

openDownloadedFile

Added in API level 9
ParcelFileDescriptor openDownloadedFile (long id)

打开下载的文件以供阅读。 下载必须完成。

Parameters
id long: the ID of the download
Returns
ParcelFileDescriptor a read-only ParcelFileDescriptor
Throws
FileNotFoundException if the destination file does not already exist

query

Added in API level 9
Cursor query (DownloadManager.Query query)

向下载管理器询问已下载的请求。

Parameters
query DownloadManager.Query: parameters specifying filters for this query
Returns
Cursor a Cursor over the result set of downloads, with columns consisting of all the COLUMN_* constants.

remove

Added in API level 9
int remove (long... ids)

取消下载并将其从下载管理器中删除。 每个下载将在运行时停止,并且不再可通过下载管理器访问。 如果下载的文件部分或完整,则会被删除。

Parameters
ids long: the IDs of the downloads to remove
Returns
int the number of downloads actually removed

Hooray!