使用下载管理器在安卓中下载失败的占位符原因

6

我正在使用下载管理器下载文件(.mov,.pdf,.png)。当我调用下载管理器时,下载失败并显示“占位符”原因。什么是占位符?如何解决这个问题?请帮帮我!

我的代码如下:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUrlFile))
    .setDestinationInExternalFilesDir(context,
        (Environment.DIRECTORY_DOWNLOADS), downloadFileName).setNotificationVisibility(visibility);

mEnqueue = downloadManager.enqueue(request);
mDownloadReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "DOWNLOAD_STATUS"+intent.getAction());
        String action = intent.getAction();
        if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
            Query query = new Query();
            query.setFilterById(mEnqueue);
            Cursor c = downloadManager.query(query);
            if (c.moveToFirst()) {
                int columnIndex = c            .getColumnIndex(DownloadManager.COLUMN_STATUS);
                Log.d("getColumnIndex()", "Reason: " + c
                        .getColumnIndex(DownloadManager.COLUMN_STATUS)+DownloadManager.STATUS_SUCCESSFUL);
                if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
                    Log.d(TAG, "DOWNLOAD_STATUS_SUCCESSFUL");
                } else if (DownloadManager.STATUS_FAILED == c.getInt(columnIndex)) {
                    Log.d("handleData()", "Reason: " + c.getString(c.getColumnIndex(DownloadManager.COLUMN_REASON)));
                    Log.d(TAG, "DOWNLOAD_STATUS_FAILED");
                } 
            } 
        } 
    } 
};
1个回答

5
问题在于“COLUMN_REASON”这一列是整数而不是字符串(尽管有些例子给人的印象是它是一个字符串)。
因此,您应该使用以下代码:
Log.d("handleData()", "Reason: " + c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON)));

该值可以在以下位置找到: 这里这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接