android - studio - DownloadManager.Request.setNotificationVisibility falla con jSecurityException: valor no vĂ¡lido para la visibilidad: 2
internet download manager android (1)
Intento usar DownloadManager
en una clase de Service
de la mía:
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);
Sin setNotificationVisibility
, este código funciona bien. Pero muestra una notificación, que no quiero, porque utilizo este código para cargar imágenes de carga lenta en un ListView
.
Entiendo, esta notificación se puede ocultar con
downloadRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
Pero en ese caso, mi aplicación falla con:
02-19 02: 24: 24.055: E / AndroidRuntime (2572): java.lang.SecurityException: valor no válido para la visibilidad: 2 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.os.Parcel .readException (Parcel.java:1327) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:181) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:135) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.content.ContentProviderProxy.insert (ContentProviderNative.java: 415) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.content.ContentResolver.insert (ContentResolver.java:730) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en android.app.DownloadManager.enqueue (DownloadManager.java:885) 02-19 02: 24: 24.055: E / AndroidRuntime (2572): en MyService.getImage (MyService.java:112)
¿Qué pasa con setNotificationVisibility
? ¿Cómo puedo tener la notificación?
Necesita el siguiente permiso en el manifiesto según la documentación:
<uses-permission
android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />