59

我正在尝试在我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):在 android.os.Parcel .readException(Parcel.java:1327) 02-19 02:24:24.055: E/AndroidRuntime(2572): 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181) 02-19 02:24:24.055: E /AndroidRuntime(2572): 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 02-19 02:24:24.055: E/AndroidRuntime(2572): 在 android.content.ContentProviderProxy.insert(ContentProviderNative.java: 415) 02-19 02:24:24.055: E/AndroidRuntime(2572): 在 android.content.ContentResolver.insert(ContentResolver.java:730) 02-19 02:24:24.055: E/AndroidRuntime(2572): 在android.app.DownloadManager.enqueue(DownloadManager.java:885) 02-19 02:24:24。055: E/AndroidRuntime(2572): 在 MyService.getImage(MyService.java:112)

怎么了setNotificationVisibility?我怎样才能收到通知?

4

2 回答 2

148

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

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

注意
大多数清单权限将由 Android Studio 自动完成,但这不会自动完成。

于 2012-02-21T09:12:21.837 回答
1

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

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
于 2020-05-11T17:58:45.847 回答