Android: 什么是下载管理器文件大小限制
Android: what's Download manager File size Limitations
什么是 Downloadmanager 可下载文件大小限制 android,因为我正在尝试下载文件大小 (700MB) 它没有下载,但是当我用 1MB 或 2MB 尝试同样的事情时,它下载完美。
那么,请帮忙
文件大小没有记录限制,但可用磁盘 space 可能是一个限制。
对于失败的下载,请使用 DownloadManager.Query
检查下载的 COLUMN_STATUS
和 COLUMN_REASON
值,尝试确定发生了什么。
在 this sample app 中,我使用 DownloadManager
下载了一个文件,并且我有一个按钮可以让您查看状态信息。
当您请求下载时,您会得到一个 int
作为下载请求 ID 的返回:
lastDownload=mgr.enqueue(req);
当用户单击相应按钮时,我查询下载状态,将部分信息记录到 LogCat,并显示 Toast
:
private void queryStatus(View v) {
Cursor c=
mgr.query(new DownloadManager.Query().setFilterById(lastDownload));
if (c == null) {
Toast.makeText(getActivity(), R.string.download_not_found,
Toast.LENGTH_LONG).show();
}
else {
c.moveToFirst();
Log.d(getClass().getName(),
"COLUMN_ID: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)));
Log.d(getClass().getName(),
"COLUMN_BYTES_DOWNLOADED_SO_FAR: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)));
Log.d(getClass().getName(),
"COLUMN_LAST_MODIFIED_TIMESTAMP: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP)));
Log.d(getClass().getName(),
"COLUMN_LOCAL_URI: "
+ c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)));
Log.d(getClass().getName(),
"COLUMN_STATUS: "
+ c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)));
Log.d(getClass().getName(),
"COLUMN_REASON: "
+ c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON)));
Toast.makeText(getActivity(), statusMessage(c), Toast.LENGTH_LONG)
.show();
c.close();
}
}
private String statusMessage(Cursor c) {
String msg="???";
switch (c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
case DownloadManager.STATUS_FAILED:
msg=getActivity().getString(R.string.download_failed);
break;
case DownloadManager.STATUS_PAUSED:
msg=getActivity().getString(R.string.download_paused);
break;
case DownloadManager.STATUS_PENDING:
msg=getActivity().getString(R.string.download_pending);
break;
case DownloadManager.STATUS_RUNNING:
msg=getActivity().getString(R.string.download_in_progress);
break;
case DownloadManager.STATUS_SUCCESSFUL:
msg=getActivity().getString(R.string.download_complete);
break;
default:
msg=
getActivity().getString(R.string.download_is_nowhere_in_sight);
break;
}
return(msg);
}
什么是 Downloadmanager 可下载文件大小限制 android,因为我正在尝试下载文件大小 (700MB) 它没有下载,但是当我用 1MB 或 2MB 尝试同样的事情时,它下载完美。
那么,请帮忙
文件大小没有记录限制,但可用磁盘 space 可能是一个限制。
对于失败的下载,请使用 DownloadManager.Query
检查下载的 COLUMN_STATUS
和 COLUMN_REASON
值,尝试确定发生了什么。
在 this sample app 中,我使用 DownloadManager
下载了一个文件,并且我有一个按钮可以让您查看状态信息。
当您请求下载时,您会得到一个 int
作为下载请求 ID 的返回:
lastDownload=mgr.enqueue(req);
当用户单击相应按钮时,我查询下载状态,将部分信息记录到 LogCat,并显示 Toast
:
private void queryStatus(View v) {
Cursor c=
mgr.query(new DownloadManager.Query().setFilterById(lastDownload));
if (c == null) {
Toast.makeText(getActivity(), R.string.download_not_found,
Toast.LENGTH_LONG).show();
}
else {
c.moveToFirst();
Log.d(getClass().getName(),
"COLUMN_ID: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)));
Log.d(getClass().getName(),
"COLUMN_BYTES_DOWNLOADED_SO_FAR: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)));
Log.d(getClass().getName(),
"COLUMN_LAST_MODIFIED_TIMESTAMP: "
+ c.getLong(c.getColumnIndex(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP)));
Log.d(getClass().getName(),
"COLUMN_LOCAL_URI: "
+ c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)));
Log.d(getClass().getName(),
"COLUMN_STATUS: "
+ c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)));
Log.d(getClass().getName(),
"COLUMN_REASON: "
+ c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON)));
Toast.makeText(getActivity(), statusMessage(c), Toast.LENGTH_LONG)
.show();
c.close();
}
}
private String statusMessage(Cursor c) {
String msg="???";
switch (c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
case DownloadManager.STATUS_FAILED:
msg=getActivity().getString(R.string.download_failed);
break;
case DownloadManager.STATUS_PAUSED:
msg=getActivity().getString(R.string.download_paused);
break;
case DownloadManager.STATUS_PENDING:
msg=getActivity().getString(R.string.download_pending);
break;
case DownloadManager.STATUS_RUNNING:
msg=getActivity().getString(R.string.download_in_progress);
break;
case DownloadManager.STATUS_SUCCESSFUL:
msg=getActivity().getString(R.string.download_complete);
break;
default:
msg=
getActivity().getString(R.string.download_is_nowhere_in_sight);
break;
}
return(msg);
}