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

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

源代码1 项目: delion   文件: DownloadManagerService.java

/**
 * Called when a download fails.
 *
 * @param fileName Name of the download file.
 * @param reason Reason of failure reported by android DownloadManager
 */
protected void onDownloadFailed(String fileName, int reason) {
    String reasonString = mContext.getString(
            R.string.download_failed_reason_unknown_error, fileName);
    switch (reason) {
        case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_file_already_exists, fileName);
            break;
        case DownloadManager.ERROR_FILE_ERROR:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_file_system_error, fileName);
            break;
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_insufficient_space, fileName);
            break;
        case DownloadManager.ERROR_CANNOT_RESUME:
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_network_failures, fileName);
            break;
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_server_issues, fileName);
            break;
        case DownloadManager.ERROR_DEVICE_NOT_FOUND:
            reasonString = mContext.getString(
                    R.string.download_failed_reason_storage_not_found, fileName);
            break;
        case DownloadManager.ERROR_UNKNOWN:
        default:
            break;
    }
    mDownloadSnackbarController.onDownloadFailed(
            reasonString, reason == DownloadManager.ERROR_FILE_ALREADY_EXISTS);
}
 
源代码2 项目: delion   文件: OMADownloadHandler.java

/**
 * Called when android DownloadManager fails to download the content.
 *
 * @param downloadInfo The information about the download.
 * @param downloadId Download Id from the Android DownloadManager.
 * @param reason The reason of failure.
 * @param notifyURI The previously saved installNotifyURI attribute.
 */
public void onDownloadFailed(
        DownloadInfo downloadInfo, long downloadId, int reason, String notifyURI) {
    String status = DOWNLOAD_STATUS_DEVICE_ABORTED;
    switch (reason) {
        case DownloadManager.ERROR_CANNOT_RESUME:
            status = DOWNLOAD_STATUS_LOSS_OF_SERVICE;
            break;
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            status = DOWNLOAD_STATUS_LOADER_ERROR;
            break;
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            status = DOWNLOAD_STATUS_INSUFFICIENT_MEMORY;
            break;
        default:
            break;
    }
    OMAInfo omaInfo = mPendingOMADownloads.get(downloadId);
    if (omaInfo == null) {
        // Just send the notification in this case.
        omaInfo = new OMAInfo();
        omaInfo.addAttributeValue(OMA_INSTALL_NOTIFY_URI, notifyURI);
        sendInstallNotificationAndNextStep(omaInfo, downloadInfo, downloadId, status);
        return;
    }
    showDownloadWarningDialog(
            R.string.oma_download_failed, omaInfo, downloadInfo, status);
    mPendingOMADownloads.remove(downloadId);
}
 

/**
 * Get the message to display when a download fails.
 *
 * @param fileName Name of the download file.
 * @param reason Reason of failure reported by android DownloadManager.
 */
private String getDownloadFailureMessage(String fileName, int reason) {
    switch (reason) {
        case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
            return mContext.getString(
                    R.string.download_failed_reason_file_already_exists, fileName);
        case DownloadManager.ERROR_FILE_ERROR:
            return mContext.getString(
                    R.string.download_failed_reason_file_system_error, fileName);
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            return mContext.getString(
                    R.string.download_failed_reason_insufficient_space, fileName);
        case DownloadManager.ERROR_CANNOT_RESUME:
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
            return mContext.getString(
                    R.string.download_failed_reason_network_failures, fileName);
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            return mContext.getString(
                    R.string.download_failed_reason_server_issues, fileName);
        case DownloadManager.ERROR_DEVICE_NOT_FOUND:
            return mContext.getString(
                    R.string.download_failed_reason_storage_not_found, fileName);
        case DownloadManager.ERROR_UNKNOWN:
        default:
            return mContext.getString(
                    R.string.download_failed_reason_unknown_error, fileName);
    }
}
 

/**
 * Called when android DownloadManager fails to download the content.
 *
 * @param downloadInfo The information about the download.
 * @param downloadId Download Id from the Android DownloadManager.
 * @param reason The reason of failure.
 * @param notifyURI The previously saved installNotifyURI attribute.
 */
public void onDownloadFailed(
        DownloadInfo downloadInfo, long downloadId, int reason, String notifyURI) {
    String status = DOWNLOAD_STATUS_DEVICE_ABORTED;
    switch (reason) {
        case DownloadManager.ERROR_CANNOT_RESUME:
            status = DOWNLOAD_STATUS_LOSS_OF_SERVICE;
            break;
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            status = DOWNLOAD_STATUS_LOADER_ERROR;
            break;
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            status = DOWNLOAD_STATUS_INSUFFICIENT_MEMORY;
            break;
        default:
            break;
    }
    OMAInfo omaInfo = mPendingOMADownloads.get(downloadId);
    if (omaInfo == null) {
        // Just send the notification in this case.
        omaInfo = new OMAInfo();
        omaInfo.addAttributeValue(OMA_INSTALL_NOTIFY_URI, notifyURI);
        sendInstallNotificationAndNextStep(omaInfo, downloadInfo, downloadId, status);
        return;
    }
    showDownloadWarningDialog(
            R.string.oma_download_failed, omaInfo, downloadInfo, status);
    mPendingOMADownloads.remove(downloadId);
}
 

/**
 * Get the message to display when a download fails.
 *
 * @param fileName Name of the download file.
 * @param reason Reason of failure reported by android DownloadManager.
 */
private String getDownloadFailureMessage(String fileName, int reason) {
    switch (reason) {
        case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
            return mContext.getString(
                    R.string.download_failed_reason_file_already_exists, fileName);
        case DownloadManager.ERROR_FILE_ERROR:
            return mContext.getString(
                    R.string.download_failed_reason_file_system_error, fileName);
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            return mContext.getString(
                    R.string.download_failed_reason_insufficient_space, fileName);
        case DownloadManager.ERROR_CANNOT_RESUME:
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
            return mContext.getString(
                    R.string.download_failed_reason_network_failures, fileName);
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            return mContext.getString(
                    R.string.download_failed_reason_server_issues, fileName);
        case DownloadManager.ERROR_DEVICE_NOT_FOUND:
            return mContext.getString(
                    R.string.download_failed_reason_storage_not_found, fileName);
        case DownloadManager.ERROR_UNKNOWN:
        default:
            return mContext.getString(
                    R.string.download_failed_reason_unknown_error, fileName);
    }
}
 
源代码6 项目: 365browser   文件: OMADownloadHandler.java

/**
 * Called when android DownloadManager fails to download the content.
 *
 * @param downloadInfo The information about the download.
 * @param downloadId Download Id from the Android DownloadManager.
 * @param reason The reason of failure.
 * @param notifyURI The previously saved installNotifyURI attribute.
 */
private void onDownloadFailed(
        DownloadInfo downloadInfo, long downloadId, int reason, String notifyURI) {
    String status = DOWNLOAD_STATUS_DEVICE_ABORTED;
    switch (reason) {
        case DownloadManager.ERROR_CANNOT_RESUME:
            status = DOWNLOAD_STATUS_LOSS_OF_SERVICE;
            break;
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            status = DOWNLOAD_STATUS_LOADER_ERROR;
            break;
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            status = DOWNLOAD_STATUS_INSUFFICIENT_MEMORY;
            break;
        default:
            break;
    }
    OMAInfo omaInfo = mPendingOMADownloads.get(downloadId);
    if (omaInfo == null) {
        // Just send the notification in this case.
        omaInfo = new OMAInfo();
        omaInfo.addAttributeValue(OMA_INSTALL_NOTIFY_URI, notifyURI);
        sendInstallNotificationAndNextStep(omaInfo, downloadInfo, downloadId, status);
        return;
    }
    showDownloadWarningDialog(
            R.string.oma_download_failed, omaInfo, downloadInfo, status);
    mPendingOMADownloads.remove(downloadId);
}
 

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;
    }
 

@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;
}
 

@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;
}
 

private String getDownloadFailureStatus(Cursor cursor) {
    String status = null;

    if (cursor.moveToFirst()) {
        int columnIndex = cursor.getColumnIndex(DownloadManager.COLUMN_REASON);
        if(columnIndex != -1) {
            int reason = cursor.getInt(columnIndex);

            switch (reason) {
                case DownloadManager.ERROR_CANNOT_RESUME:
                    status = "Cannot Resume";
                    break;
                case DownloadManager.ERROR_DEVICE_NOT_FOUND:
                    status = "Device Not Found";
                    break;
                case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
                    status = "File Already Exists";
                    break;
                case DownloadManager.ERROR_FILE_ERROR:
                    status = "File Error";
                    break;
                case DownloadManager.ERROR_HTTP_DATA_ERROR:
                    status = "HTTP Data Error";
                    break;
                case DownloadManager.ERROR_INSUFFICIENT_SPACE:
                    status = "Insufficient Space";
                    break;
                case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
                    status = "Too Many Redirects";
                    break;
                case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
                    status = "Unhandled HTTP Code";
                    break;
                case DownloadManager.ERROR_UNKNOWN:
                default:
                    status = "Unknown Error";
                    break;
            }
        }
    }

    return status;
}
 

private static String getUserFriendlyReason(int reason) {
    String failedReason = "";
    switch (reason) {
        case DownloadManager.ERROR_CANNOT_RESUME:
            failedReason = "ERROR_CANNOT_RESUME";
            break;
        case DownloadManager.ERROR_DEVICE_NOT_FOUND:
            failedReason = "ERROR_DEVICE_NOT_FOUND";
            break;
        case DownloadManager.ERROR_FILE_ALREADY_EXISTS:
            failedReason = "ERROR_FILE_ALREADY_EXISTS";
            break;
        case DownloadManager.ERROR_FILE_ERROR:
            failedReason = "ERROR_FILE_ERROR";
            break;
        case DownloadManager.ERROR_HTTP_DATA_ERROR:
            failedReason = "ERROR_HTTP_DATA_ERROR";
            break;
        case DownloadManager.ERROR_INSUFFICIENT_SPACE:
            failedReason = "ERROR_INSUFFICIENT_SPACE";
            break;
        case DownloadManager.ERROR_TOO_MANY_REDIRECTS:
            failedReason = "ERROR_TOO_MANY_REDIRECTS";
            break;
        case DownloadManager.ERROR_UNHANDLED_HTTP_CODE:
            failedReason = "ERROR_UNHANDLED_HTTP_CODE";
            break;
        case DownloadManager.ERROR_UNKNOWN:
            failedReason = "ERROR_UNKNOWN";
            break;
        case HttpURLConnection.HTTP_BAD_REQUEST:
            failedReason = "BAD_REQUEST";
            break;
        case HttpURLConnection.HTTP_UNAUTHORIZED:
            failedReason = "UNAUTHORIZED";
            break;
        case HttpURLConnection.HTTP_FORBIDDEN:
            failedReason = "FORBIDDEN";
            break;
        case HttpURLConnection.HTTP_NOT_FOUND:
            failedReason = "NOT_FOUND";
            break;
        case HttpURLConnection.HTTP_INTERNAL_ERROR:
            failedReason = "INTERNAL_SERVER_ERROR";
            break;
        case ERROR_CANCELED:
            failedReason = "CANCELED";
            break;
    }

    return failedReason;
}