Android: 什么是下载管理器文件大小限制

Android: what's Download manager File size Limitations

什么是 Downloadmanager 可下载文件大小限制 android,因为我正在尝试下载文件大小 (700MB) 它没有下载,但是当我用 1MB 或 2MB 尝试同样的事情时,它下载完美。

那么,请帮忙

文件大小没有记录限制,但可用磁盘 space 可能是一个限制。

对于失败的下载,请使用 DownloadManager.Query 检查下载的 COLUMN_STATUSCOLUMN_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);
  }