私の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:Invalid value for visibility: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
の何が問題になっていますか?どうすれば通知できますか?
ドキュメントに従って、マニフェストで次の権限が必要です。
<uses-permission
Android:name="Android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />