android.app.DownloadManager#STATUS_FAILED源码实例Demo

下面列出了android.app.DownloadManager#STATUS_FAILED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: delion   文件: DownloadManagerService.java
@Override
protected void onPostExecute(Pair<Integer, Boolean> result) {
    long downloadId = mDownloadItem.getSystemDownloadId();
    if (result.first == DownloadManager.STATUS_SUCCESSFUL) {
        mOMADownloadHandler.onDownloadCompleted(
                mDownloadInfo, downloadId, mInstallNotifyURI);
        removeOMADownloadFromSharedPrefs(downloadId);
        mDownloadSnackbarController.onDownloadSucceeded(
                mDownloadInfo, DownloadSnackbarController.INVALID_NOTIFICATION_ID,
                downloadId, result.second);
    } else if (result.first == DownloadManager.STATUS_FAILED) {
        mOMADownloadHandler.onDownloadFailed(
                mDownloadInfo, downloadId, mFailureReason, mInstallNotifyURI);
        removeOMADownloadFromSharedPrefs(downloadId);
        String fileName = mDownloadInfo.getFileName();
        onDownloadFailed(fileName, mFailureReason);
    }
}
 
源代码2 项目: WanAndroid   文件: UpdataReceiver.java
/**
 * 查询下载完成文件的状态
 */
private void checkDownloadStatus(Context context, long downloadId) {
    mManager = (DownloadManager) context.getSystemService(DOWNLOAD_SERVICE);
    DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterById(downloadId);
    Cursor cursor = mManager.query(query);
     if (cursor.moveToFirst()) {
         int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
         switch (status) {
            case DownloadManager.STATUS_SUCCESSFUL:
                LogUtil.d(LogUtil.TAG_COMMON, "下载完成!");
                RxBus.getInstance().post(new InstallApkEvent());
                 break;
            case DownloadManager.STATUS_FAILED://下载失败
                ToastUtil.toastInBottom(context, context.getString(R.string.download_fail));
                RxBus.getInstance().post(new OpenBrowseEvent());
                LogUtil.d(LogUtil.TAG_COMMON, "下载失败.....");
                break;
            case DownloadManager.STATUS_RUNNING://正在下载
                 LogUtil.d(LogUtil.TAG_COMMON, "正在下载.....");
                 break;
            default:
                break;
         }
     }
}
 
源代码3 项目: MTweaks-KernelAdiutorMOD   文件: UtilsLibrary.java
@Override
public void onReceive(Context context, Intent intent) {

    DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterById(id, 0);
    Cursor cursor = downloadManager.query(query);

    if(cursor.moveToFirst()) {
        int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
        int reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON));

        if(status == DownloadManager.STATUS_SUCCESSFUL) {

            // Si la descarga es correcta abrimos el archivo para instalarlo
            File file = new File(Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).getPath());
            OpenNewVersion(context, file);
        }
        else if(status == DownloadManager.STATUS_FAILED) {
            Utils.toast(context.getString(R.string.appupdater_download_filed) + reason, context, LENGTH_LONG);
        }
    }
}
 
源代码4 项目: PocketMaps   文件: MapDownloadUnzip.java
/** Check first, if map is finished, or on pending status register receiver. **/
private static void broadcastReceiverCheck(Activity activity,
                                     final MyMap myMap,
                                     final StatusUpdate stUpdate,
                                     final long enqueueId)
{
  int preStatus = getDownloadStatus(activity, enqueueId);
  if (preStatus == DownloadManager.STATUS_SUCCESSFUL)
  {
    stUpdate.logUserThread("Unzipping: " + myMap.getMapName());
    unzipBg(activity, myMap, stUpdate);
    return;
  }
  else if (preStatus == DownloadManager.STATUS_FAILED)
  {
    DownloadMapActivity.clearDlFile(myMap);
    stUpdate.logUserThread("Error post-downloading map: " + myMap.getMapName());
  }
  else
  {
    stUpdate.onRegisterBroadcastReceiver(activity, myMap, enqueueId);
  }
}
 
源代码5 项目: arcusandroid   文件: ClipDownloadControllerImpl.java
protected void doGetStatus(long downloadId) {
    try {
        switch (getDownloadManagerStatus(downloadId)) {
            case DownloadManager.STATUS_FAILED:
                onDownloadComplete(getRecordingID(), STATUS_DOWNLOAD_CANCELED);
                removeCurrentDownloadReferences();
                break;

            case DownloadManager.STATUS_SUCCESSFUL:
                onDownloadComplete(getRecordingID(), STATUS_DOWNLOAD_COMPLETE);
                removeCurrentDownloadReferences();
                break;

            case DownloadManager.STATUS_PENDING:
            case DownloadManager.STATUS_PAUSED:
            case DownloadManager.STATUS_RUNNING:
                int progress = doGetDownloadProgress();
                if (progress == 100) {
                    onDownloadComplete(getRecordingID(), STATUS_DOWNLOAD_COMPLETE);
                    removeCurrentDownloadReferences();
                }
                else {
                    onDownloadProgressChanged(progress, STATUS_DOWNLOAD_RUNNING);
                }
                break;
        }
    }
    catch (Exception ex) {
        removeCurrentDownloadReferences();
        onDownloadFatalError(ex);
    }
}
 
源代码6 项目: arcusandroid   文件: ClipDownloadControllerImpl.java
protected boolean downloadInProgress() {
    long downloadId = getDownloadID();
    if (downloadId == -1) {
        return false;
    }

    try {
        switch (getDownloadManagerStatus(downloadId)) {
            case DownloadManager.STATUS_FAILED:
                removeCurrentDownloadReferences();
                return false;

            case DownloadManager.STATUS_SUCCESSFUL:
                removeCurrentDownloadReferences();
                return false;

            case DownloadManager.STATUS_PENDING:
            case DownloadManager.STATUS_PAUSED:
            case DownloadManager.STATUS_RUNNING:
                return true;

            default:
            case -1:
                return false;
        }
    }
    catch (Exception ex) {
        logger.error("Could not process download ID [{}]", downloadId, ex);
    }

    return false;
}
 
源代码7 项目: Indic-Keyboard   文件: UpdateHandler.java
/**
 * Retrieve information about a specific download from DownloadManager.
 */
private static CompletedDownloadInfo getCompletedDownloadInfo(
        final DownloadManagerWrapper manager, final long downloadId) {
    final Query query = new Query().setFilterById(downloadId);
    final Cursor cursor = manager.query(query);

    if (null == cursor) {
        return new CompletedDownloadInfo(null, downloadId, DownloadManager.STATUS_FAILED);
    }
    try {
        final String uri;
        final int status;
        if (cursor.moveToNext()) {
            final int columnStatus = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
            final int columnError = cursor.getColumnIndex(DownloadManager.COLUMN_REASON);
            final int columnUri = cursor.getColumnIndex(DownloadManager.COLUMN_URI);
            final int error = cursor.getInt(columnError);
            status = cursor.getInt(columnStatus);
            final String uriWithAnchor = cursor.getString(columnUri);
            int anchorIndex = uriWithAnchor.indexOf('#');
            if (anchorIndex != -1) {
                uri = uriWithAnchor.substring(0, anchorIndex);
            } else {
                uri = uriWithAnchor;
            }
            if (DownloadManager.STATUS_SUCCESSFUL != status) {
                Log.e(TAG, "Permanent failure of download " + downloadId
                        + " with error code: " + error);
            }
        } else {
            uri = null;
            status = DownloadManager.STATUS_FAILED;
        }
        return new CompletedDownloadInfo(uri, downloadId, status);
    } finally {
        cursor.close();
    }
}
 
源代码8 项目: Mysplash   文件: AndroidDownloaderExecutor.java
@DownloadTask.DownloadResultRule
private int getDownloadResult(@NonNull Cursor cursor) {
    switch (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
        case DownloadManager.STATUS_SUCCESSFUL:
            return DownloadTask.RESULT_SUCCEED;

        case DownloadManager.STATUS_FAILED:
        case DownloadManager.STATUS_PAUSED:
            return DownloadTask.RESULT_FAILED;

        default:
            return DownloadTask.RESULT_DOWNLOADING;
    }
}
 
源代码9 项目: AOSP-Kayboard-7.1.2   文件: UpdateHandler.java
/**
 * Retrieve information about a specific download from DownloadManager.
 */
private static CompletedDownloadInfo getCompletedDownloadInfo(
        final DownloadManagerWrapper manager, final long downloadId) {
    final Query query = new Query().setFilterById(downloadId);
    final Cursor cursor = manager.query(query);

    if (null == cursor) {
        return new CompletedDownloadInfo(null, downloadId, DownloadManager.STATUS_FAILED);
    }
    try {
        final String uri;
        final int status;
        if (cursor.moveToNext()) {
            final int columnStatus = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
            final int columnError = cursor.getColumnIndex(DownloadManager.COLUMN_REASON);
            final int columnUri = cursor.getColumnIndex(DownloadManager.COLUMN_URI);
            final int error = cursor.getInt(columnError);
            status = cursor.getInt(columnStatus);
            final String uriWithAnchor = cursor.getString(columnUri);
            int anchorIndex = uriWithAnchor.indexOf('#');
            if (anchorIndex != -1) {
                uri = uriWithAnchor.substring(0, anchorIndex);
            } else {
                uri = uriWithAnchor;
            }
            if (DownloadManager.STATUS_SUCCESSFUL != status) {
                Log.e(TAG, "Permanent failure of download " + downloadId
                        + " with error code: " + error);
            }
        } else {
            uri = null;
            status = DownloadManager.STATUS_FAILED;
        }
        return new CompletedDownloadInfo(uri, downloadId, status);
    } finally {
        cursor.close();
    }
}
 
源代码10 项目: OpenHub   文件: Downloader.java
private void checkStatus() {
    //cause SQLiteException at 乐视 LE X820 Android 6.0.1,level 23
    try{
        DownloadManager.Query query = new DownloadManager.Query();
        query.setFilterById(downloadId);
        Cursor c = downloadManager.query(query);
        if (c.moveToFirst()) {
            int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
            switch (status) {
                case DownloadManager.STATUS_PAUSED:
                    break;
                case DownloadManager.STATUS_PENDING:
                    break;
                case DownloadManager.STATUS_RUNNING:
                    break;
                case DownloadManager.STATUS_SUCCESSFUL:
                    String tip = mContext.getString(R.string.download_complete)
                            .concat("\n").concat(getFilePath());
                    Toasty.success(mContext, tip).show();
                    unregister();
                    break;
                case DownloadManager.STATUS_FAILED:
                    Toasty.error(mContext, mContext.getString(R.string.download_failed)).show();
                    unregister();
                    break;
            }
        }
        c.close();
    }catch (SQLiteException e){
        Logger.d(e);
        unregister();
    }

}
 
源代码11 项目: AndroidChromium   文件: DownloadManagerService.java
@Override
public Pair<Integer, Boolean> doInBackground(Void...voids) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = manager.query(new DownloadManager.Query().setFilterById(
            mDownloadItem.getSystemDownloadId()));
    int statusIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
    int reasonIndex = c.getColumnIndex(DownloadManager.COLUMN_REASON);
    int titleIndex = c.getColumnIndex(DownloadManager.COLUMN_TITLE);
    int status = DownloadManager.STATUS_FAILED;
    Boolean canResolve = false;
    if (c.moveToNext()) {
        status = c.getInt(statusIndex);
        String title = c.getString(titleIndex);
        if (mDownloadInfo == null) {
            // Chrome has been killed, reconstruct a DownloadInfo.
            mDownloadInfo = new DownloadInfo.Builder()
                    .setFileName(title)
                    .setDescription(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_DESCRIPTION)))
                    .setMimeType(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_MEDIA_TYPE)))
                    .setContentLength(Long.parseLong(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES))))
                    .build();
        }
        if (status == DownloadManager.STATUS_SUCCESSFUL) {
            mDownloadInfo = DownloadInfo.Builder.fromDownloadInfo(mDownloadInfo)
                    .setFileName(title)
                    .build();
            mDownloadItem.setDownloadInfo(mDownloadInfo);
            canResolve = canResolveDownloadItem(mContext, mDownloadItem, false);
        } else if (status == DownloadManager.STATUS_FAILED) {
            mFailureReason = c.getInt(reasonIndex);
            manager.remove(mDownloadItem.getSystemDownloadId());
        }
    }
    c.close();
    return Pair.create(status, canResolve);
}
 
源代码12 项目: 365browser   文件: DownloadManagerDelegate.java
@Override
public DownloadQueryResult doInBackground(Void... voids) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = manager.query(
            new DownloadManager.Query().setFilterById(mDownloadItem.getSystemDownloadId()));
    if (c == null) {
        return new DownloadQueryResult(mDownloadItem,
                DownloadManagerService.DOWNLOAD_STATUS_CANCELLED, 0, 0, false, 0);
    }
    long bytesDownloaded = 0;
    boolean canResolve = false;
    int downloadStatus = DownloadManagerService.DOWNLOAD_STATUS_IN_PROGRESS;
    int failureReason = 0;
    long lastModifiedTime = 0;
    if (c.moveToNext()) {
        int statusIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
        int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
        if (status == DownloadManager.STATUS_SUCCESSFUL) {
            downloadStatus = DownloadManagerService.DOWNLOAD_STATUS_COMPLETE;
            DownloadInfo.Builder builder = mDownloadItem.getDownloadInfo() == null
                    ? new DownloadInfo.Builder()
                    : DownloadInfo.Builder.fromDownloadInfo(
                              mDownloadItem.getDownloadInfo());
            builder.setFileName(
                    c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE)));
            mDownloadItem.setDownloadInfo(builder.build());
            if (mShowNotifications) {
                canResolve = DownloadManagerService.isOMADownloadDescription(
                        mDownloadItem.getDownloadInfo())
                        || DownloadManagerService.canResolveDownloadItem(
                                mContext, mDownloadItem, false);
            }
        } else if (status == DownloadManager.STATUS_FAILED) {
            downloadStatus = DownloadManagerService.DOWNLOAD_STATUS_FAILED;
            failureReason = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON));
        }
        lastModifiedTime =
                c.getLong(c.getColumnIndex(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP));
        bytesDownloaded =
                c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
    } else {
        downloadStatus = DownloadManagerService.DOWNLOAD_STATUS_CANCELLED;
    }
    c.close();
    long totalTime = Math.max(0, lastModifiedTime - mDownloadItem.getStartTime());
    return new DownloadQueryResult(mDownloadItem, downloadStatus, totalTime,
            bytesDownloaded, canResolve, failureReason);
}
 
源代码13 项目: AndroidUpdater   文件: Updater.java
public void download(UpdaterConfig updaterConfig) {

        if (!UpdaterUtils.checkDownloadState(updaterConfig.getContext())) {
            Toast.makeText(updaterConfig.getContext(), R.string.system_download_component_disable, Toast.LENGTH_SHORT).show();
            UpdaterUtils.showDownloadSetting(updaterConfig.getContext());
            return;
        }

        long downloadId = UpdaterUtils.getLocalDownloadId(updaterConfig.getContext());
        Logger.get().d("local download id is " + downloadId);
        if (downloadId != -1L) {
            FileDownloadManager fdm = FileDownloadManager.get();
            //获取下载状态
            int status = fdm.getDownloadStatus(updaterConfig.getContext(), downloadId);
            switch (status) {
                //下载成功
                case DownloadManager.STATUS_SUCCESSFUL:
                    Logger.get().d("downloadId=" + downloadId + " ,status = STATUS_SUCCESSFUL");
                    Uri uri = fdm.getDownloadUri(updaterConfig.getContext(), downloadId);

                    if (uri != null) {
                        //本地的版本大于当前程序的版本直接安装
                        if (UpdaterUtils.compare(updaterConfig.getContext(), uri)) {
                            Logger.get().d("start install UI with local apk");
                            UpdaterUtils.startInstall(updaterConfig.getContext(), uri);
                            return;
                        } else {
                            //从FileDownloadManager中移除这个任务
                            fdm.getDM(updaterConfig.getContext()).remove(downloadId);
                        }
                    }
                    //重新下载
                    startDownload(updaterConfig);
                    break;
                //下载失败
                case DownloadManager.STATUS_FAILED:
                    Logger.get().d("download failed " + downloadId);
                    startDownload(updaterConfig);
                    break;
                case DownloadManager.STATUS_RUNNING:
                    Logger.get().d("downloadId=" + downloadId + " ,status = STATUS_RUNNING");
                    break;
                case DownloadManager.STATUS_PENDING:
                    Logger.get().d("downloadId=" + downloadId + " ,status = STATUS_PENDING");
                    break;
                case DownloadManager.STATUS_PAUSED:
                    Logger.get().d("downloadId=" + downloadId + " ,status = STATUS_PAUSED");
                    break;
                case STATUS_UN_FIND:
                    Logger.get().d("downloadId=" + downloadId + " ,status = STATUS_UN_FIND");
                    startDownload(updaterConfig);
                    break;
                default:
                    Logger.get().d("downloadId=" + downloadId + " ,status = " + status);
                    break;
            }
        } else {
            startDownload(updaterConfig);
        }
    }
 
private HashMap<String, String> getDownloadStatus(Cursor cursor, long downloadId) {

        int columnStatusIndex = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
        int STATUS = cursor.getInt(columnStatusIndex);
        int columnReasonIndex = cursor.getColumnIndex(DownloadManager.COLUMN_REASON);
        int REASON = cursor.getInt(columnReasonIndex);
        int filenameIndex = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI);
        String filename = cursor.getString(filenameIndex);

        String statusText = "";
        String reasonText = "";

        switch (STATUS) {
            case DownloadManager.STATUS_FAILED:
                statusText = "STATUS_FAILED";
                switch (REASON) {
                    case DownloadManager.ERROR_CANNOT_RESUME:
                        reasonText = "ERROR_CANNOT_RESUME";
                        break;
                    case DownloadManager.ERROR_DEVICE_NOT_FOUND:
                        reasonText = "ERROR_DEVICE_NOT_FOUND";
                        break;
                    case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
                        reasonText = "ERROR_FILE_ALREADY_EXISTS";
                        break;
                    case DownloadManager.ERROR_FILE_ERROR:
                        reasonText = "ERROR_FILE_ERROR";
                        break;
                    case DownloadManager.ERROR_HTTP_DATA_ERROR:
                        reasonText = "ERROR_HTTP_DATA_ERROR";
                        break;
                    case DownloadManager.ERROR_INSUFFICIENT_SPACE:
                        reasonText = "ERROR_INSUFFICIENT_SPACE";
                        break;
                    case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
                        reasonText = "ERROR_TOO_MANY_REDIRECTS";
                        break;
                    case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
                        reasonText = "ERROR_UNHANDLED_HTTP_CODE";
                        break;
                    default:
                        reasonText = "ERROR_UNKNOWN";
                        break;
                }
                break;
            case DownloadManager.STATUS_PAUSED:
                statusText = "STATUS_PAUSED";
                switch (REASON) {
                    case DownloadManager.PAUSED_QUEUED_FOR_WIFI:
                        reasonText = "PAUSED_QUEUED_FOR_WIFI";
                        break;
                    case DownloadManager.PAUSED_UNKNOWN:
                        reasonText = "PAUSED_UNKNOWN";
                        break;
                    case DownloadManager.PAUSED_WAITING_FOR_NETWORK:
                        reasonText = "PAUSED_WAITING_FOR_NETWORK";
                        break;
                    case DownloadManager.PAUSED_WAITING_TO_RETRY:
                        reasonText = "PAUSED_WAITING_TO_RETRY";
                        break;
                    default:
                        reasonText = "UNKNOWN";
                }
                break;
            case DownloadManager.STATUS_PENDING:
                statusText = "STATUS_PENDING";
                break;
            case DownloadManager.STATUS_RUNNING:
                statusText = "STATUS_RUNNING";
                break;
            case DownloadManager.STATUS_SUCCESSFUL:
                statusText = "STATUS_SUCCESSFUL";
                reasonText = filename;
                break;
            default:
                statusText = "STATUS_UNKNOWN";
                reasonText = String.valueOf(STATUS);
                break;
        }

        HashMap<String, String> result = new HashMap<>();
        result.put("status", statusText);
        result.put("reason", reasonText);
        result.put("downloadId", String.valueOf(downloadId));
        return result;
    }
 
源代码15 项目: satstat   文件: DownloadTreeViewAdapter.java
@Override
public void onReceive(Context context, Intent intent) {
	if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
		// this will be called when a download finishes
		Long reference = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
		DownloadManager.Query query = new DownloadManager.Query();
		query.setFilterById(reference);
		Cursor cursor = downloadManager.query(query);
		if (!cursor.moveToFirst()) {
			cursor.close();
			return;
		}
		int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
		//int reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON));
		cursor.close();
		switch (status) {
		case DownloadManager.STATUS_SUCCESSFUL:
			// The file was downloaded successfully
			removeDownload(reference, true);
			break;
		case DownloadManager.STATUS_FAILED:
			// The download failed
			removeDownload(reference, false);
			break;
		case DownloadManager.STATUS_PAUSED:
			// The download was paused, update status once more
			checkProgress();
			manager.refresh();
			break;
		// The other status values are unusable because they don't fire reliably.
		}
	} else if (intent.getAction().equals(DownloadManager.ACTION_NOTIFICATION_CLICKED)) {
		Intent mapDownloadIntent = new Intent(getActivity().getApplicationContext(), MapDownloadActivity.class);
		mapDownloadIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
		if (savedInstanceState != null)
			mapDownloadIntent.putExtra(Const.KEY_SAVED_INSTANCE_STATE, savedInstanceState);
		getActivity().getApplicationContext().startActivity(mapDownloadIntent);
	} else if (intent.getAction().equals(Const.DOWNLOAD_RECEIVER_REGISTERED)) {
		/*
		 * A new download receiver has been registered. If we're released, unregister.
		 */
		if (isReleased)
			getActivity().getApplicationContext().unregisterReceiver(downloadReceiver);
	}
}
 
源代码16 项目: IslamicLibraryAndroid   文件: DownloadInfo.java
@NonNull
public static String getReasonDebugString(int status, int reason) {
    String reasonText = "unKnown_status";
    switch (status) {
        case DownloadManager.STATUS_FAILED:
            switch (reason) {
                case DownloadManager.ERROR_CANNOT_RESUME:
                    reasonText = "ERROR_CANNOT_RESUME";
                    break;
                case DownloadManager.ERROR_DEVICE_NOT_FOUND:
                    reasonText = "(ERROR_DEVICE_NOT_FOUND)";
                    break;
                case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
                    reasonText = "(ERROR_FILE_ALREADY_EXISTS)";
                    break;
                case DownloadManager.ERROR_FILE_ERROR:
                    reasonText = "(ERROR_FILE_ERROR)";
                    break;
                case DownloadManager.ERROR_HTTP_DATA_ERROR:
                    reasonText = "(ERROR_HTTP_DATA_ERROR)";
                    break;
                case DownloadManager.ERROR_INSUFFICIENT_SPACE:
                    reasonText = "(ERROR_INSUFFICIENT_SPACE)";
                    break;
                case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
                    reasonText = "(ERROR_TOO_MANY_REDIRECTS)";
                    break;
                case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
                    reasonText = "(ERROR_UNHANDLED_HTTP_CODE)";
                    break;
                case DownloadManager.ERROR_UNKNOWN:
                    reasonText = "(ERROR_UNKNOWN)";
                    break;
            }
            break;
        case DownloadManager.STATUS_PAUSED: {
            switch (reason) {
                case DownloadManager.PAUSED_QUEUED_FOR_WIFI:
                    reasonText = "PAUSED_QUEUED_FOR_WIFI";
                    break;
                case DownloadManager.PAUSED_UNKNOWN:
                    reasonText = "PAUSED_UNKNOWN";
                    break;
                case DownloadManager.PAUSED_WAITING_FOR_NETWORK:
                    reasonText = "PAUSED_WAITING_FOR_NETWORK";
                    break;
                case DownloadManager.PAUSED_WAITING_TO_RETRY:
                    reasonText = "PAUSED_WAITING_TO_RETRY";
                    break;
            }
            break;
        }
    }
    return reasonText;
}
 
源代码17 项目: IslamicLibraryAndroid   文件: DownloadInfo.java
@StringRes
public static int getReasonTextResId(int status, int reason) {
    int reasonText = R.string.unKnown_status;
    switch (status) {
        case DownloadManager.STATUS_FAILED:
            switch (reason) {
                case DownloadManager.ERROR_CANNOT_RESUME:
                    reasonText = R.string.ERROR_CANNOT_RESUME;
                    break;
                case DownloadManager.ERROR_DEVICE_NOT_FOUND:
                    reasonText = (R.string.ERROR_DEVICE_NOT_FOUND);
                    break;
                case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
                    reasonText = (R.string.ERROR_FILE_ALREADY_EXISTS);
                    break;
                case DownloadManager.ERROR_FILE_ERROR:
                    reasonText = (R.string.ERROR_FILE_ERROR);
                    break;
                case DownloadManager.ERROR_HTTP_DATA_ERROR:
                    reasonText = (R.string.ERROR_HTTP_DATA_ERROR);
                    break;
                case DownloadManager.ERROR_INSUFFICIENT_SPACE:
                    reasonText = (R.string.ERROR_INSUFFICIENT_SPACE);
                    break;
                case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
                    reasonText = (R.string.ERROR_TOO_MANY_REDIRECTS);
                    break;
                case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
                    reasonText = (R.string.ERROR_UNHANDLED_HTTP_CODE);
                    break;
                case DownloadManager.ERROR_UNKNOWN:
                    reasonText = (R.string.ERROR_UNKNOWN);
                    break;
            }
            break;
        case DownloadManager.STATUS_PAUSED: {
            switch (reason) {
                case DownloadManager.PAUSED_QUEUED_FOR_WIFI:
                    reasonText = (R.string.PAUSED_QUEUED_FOR_WIFI);
                    break;
                case DownloadManager.PAUSED_UNKNOWN:
                    reasonText = (R.string.PAUSED_UNKNOWN);
                    break;
                case DownloadManager.PAUSED_WAITING_FOR_NETWORK:
                    reasonText = (R.string.PAUSED_WAITING_FOR_NETWORK);
                    break;
                case DownloadManager.PAUSED_WAITING_TO_RETRY:
                    reasonText = (R.string.PAUSED_WAITING_TO_RETRY);
                    break;
            }
            break;
        }
    }
    return reasonText;
}
 
源代码18 项目: PocketMaps   文件: DownloadMapActivity.java
private static BroadcastReceiver createBroadcastReceiver(final Activity activity,
                                                         final StatusUpdate stUpdate,
                                                         final MyMap myMap,
                                                         final long enqueueId)
{
  log("Register receiver for map: " + myMap.getMapName());
  BroadcastReceiver receiver = new BroadcastReceiver() {
    boolean isActive = true;
    @Override
    public void onReceive(Context context, Intent intent) {
        if (!isActive) { return; }
        String action = intent.getAction();
        if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
            int dlStatus = MapDownloadUnzip.getDownloadStatus(context, enqueueId);
            if (dlStatus == DownloadManager.STATUS_SUCCESSFUL)
            {
              MapDownloadUnzip.unzipBg(activity, myMap, stUpdate);
              isActive = false;
            }
            else if (dlStatus == -1)
            { // Aborted
              log("Break downloading map: " + myMap.getMapName());
              myMap.setStatus(MyMap.DlStatus.On_server);
              clearDlFile(myMap);
              isActive = false;
            }
            else if (dlStatus == DownloadManager.STATUS_FAILED)
            { // Error
              log("Error downloading map: " + myMap.getMapName());
              myMap.setStatus(MyMap.DlStatus.Error);
              clearDlFile(myMap);
              isActive = false;
            }
            stUpdate.updateMapStatus(myMap);
        }
    }

  };

  return receiver;
}
 
源代码19 项目: FireFiles   文件: DownloadStorageProvider.java
@SuppressLint("InlinedApi")
private void includeDownloadFromCursor(MatrixCursor result, Cursor cursor) {
       final long id = cursor.getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID));
       final String docId = String.valueOf(id);

       final String displayName = cursor.getString(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE));
       String summary = cursor.getString(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_DESCRIPTION));
       String mimeType = cursor.getString(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE));
       if (mimeType == null) {
           // Provide fake MIME type so it's openable
           mimeType = "vnd.android.document/file";
       }
       Long size = cursor.getLong(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
       if (size == -1) {
           size = null;
       }

       final int status = cursor.getInt(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS));
       switch (status) {
           case DownloadManager.STATUS_SUCCESSFUL:
               break;
           case DownloadManager.STATUS_PAUSED:
               summary = getContext().getString(R.string.download_queued);
               break;
           case DownloadManager.STATUS_PENDING:
               summary = getContext().getString(R.string.download_queued);
               break;
           case DownloadManager.STATUS_RUNNING:
               final long progress = cursor.getLong(cursor.getColumnIndexOrThrow(
                       DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
               if (size != null) {
                   final long percent = progress * 100 / size;
                   summary = getContext().getString(R.string.download_running_percent, percent);
               } else {
                   summary = getContext().getString(R.string.download_running);
               }
               break;
           case DownloadManager.STATUS_FAILED:
           default:
               summary = getContext().getString(R.string.download_error);
               break;
       }

       int flags = Document.FLAG_SUPPORTS_DELETE | Document.FLAG_SUPPORTS_WRITE;
       if (mimeType != null && mimeType.startsWith("image/")) {
           flags |= Document.FLAG_SUPPORTS_THUMBNAIL;
       }

       final long lastModified = cursor.getLong(
               cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP));

       final RowBuilder row = result.newRow();
       row.add(Document.COLUMN_DOCUMENT_ID, docId);
       row.add(Document.COLUMN_DISPLAY_NAME, displayName);
       row.add(Document.COLUMN_SUMMARY, summary);
       row.add(Document.COLUMN_SIZE, size);
       row.add(Document.COLUMN_MIME_TYPE, mimeType);
       row.add(Document.COLUMN_LAST_MODIFIED, lastModified);
       row.add(Document.COLUMN_FLAGS, flags);
   }
 
源代码20 项目: Ency   文件: UpdateService.java
/**
 * 检查下载状态
 */
private void checkStatus(Context context) {
    DownloadManager.Query query = new DownloadManager.Query();
    //通过下载的id查找
    query.setFilterById(downloadId);
    Cursor c = dm.query(query);
    if (c.moveToFirst()) {
        int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
        switch (status) {
            //下载暂停
            case DownloadManager.STATUS_PAUSED:
                break;
            //下载延迟
            case DownloadManager.STATUS_PENDING:
                break;
            //正在下载
            case DownloadManager.STATUS_RUNNING:
                break;
            //下载完成
            case DownloadManager.STATUS_SUCCESSFUL:
                //下载完成安装APK
                File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "ency.apk");
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    Uri uri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileProvider", file);
                    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    intent.setDataAndType(uri, "application/vnd.android.package-archive");
                } else {
                    intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
                }
                context.startActivity(intent);
                break;
            //下载失败
            case DownloadManager.STATUS_FAILED:
                Toast.makeText(context, "下载失败", Toast.LENGTH_SHORT).show();
                break;
        }
    }
    c.close();
}