DownloadManager.Request.setNotificationVisibility失败,出现SecurityException:可见性值无效:2

时间:2012-02-19 01:55:58

标签: android download-manager

我正在尝试在我的DownloadManager类中使用Service

    DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
    //imageUri is a valid Uri
    Request downloadRequest= new Request(imageUri); 
    //without this line, it works
    downloadRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
    //subpath is valid
    downloadRequest.setDestinationInExternalFilesDir(this, null, subPath);
    downloadManager.enqueue(downloadRequest);

没有setNotificationVisibility,此代码效果很好。但它会显示一条我不想要的通知,因为我使用此代码在ListView中加载延迟图像。

据我所知,此通知可以隐藏

downloadRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);

但在这种情况下,我的应用程序崩溃了:

  

02-19 02:24:24.055:E / AndroidRuntime(2572):   java.lang.SecurityException:可见性的值无效:2 02-19   02:24:24.055:E / AndroidRuntime(2572):at   android.os.Parcel.readException(Parcel.java:1327)02-19 02:24:24.055:   E / AndroidRuntime(2572):at   android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181)   02-19 02:24:24.055:E / AndroidRuntime(2572):at   android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)   02-19 02:24:24.055:E / AndroidRuntime(2572):at   android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)   02-19 02:24:24.055:E / AndroidRuntime(2572):at   android.content.ContentResolver.insert(ContentResolver.java:730)02-19   02:24:24.055:E / AndroidRuntime(2572):at   android.app.DownloadManager.enqueue(DownloadManager.java:885)02-19   02:24:24.055:E / AndroidRuntime(2572):at   MyService.getImage(MyService.java:112)

setNotificationVisibility出了什么问题?我怎么能收到通知?

2 个答案:

答案 0 :(得分:113)

根据文档,您需要在清单中获得以下权限:

<uses-permission
        android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />

答案 1 :(得分:1)

,但还需要将该权限添加到其中未提供的rn-fetch-blob清单中。

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />