我正试图在我的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):at 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):at android.app.DownloadManager.enqueue(DownloadManager.java:885)02-19 02:24:24.055:E / AndroidRuntime(2572):at MyService.getImage(MyService.java:112)
什么是setNotificationVisibility
错了?我怎么能收到通知?
根据文档,您需要在清单中具有以下权限:
<uses-permission
android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />