Estoy tratando de usar el DownloadManager
para descargar archivos PDF grandes de mi aplicación. Quiero que las notificaciones se muestren durante la descarga y también cuando finaliza la descarga. Sin embargo, establecer la visibilidad causa la excepción anterior.DownloadManager.Request.setNotificationVisibility failed with jSecurityException: valor no válido para la visibilidad: 1
Este error es diferente de este post DownloadManager.Request.setNotificationVisibility fails with jSecurityException: invalid value for visibility: 2
El otro puesto está pidiendo ayuda al configurar la visibilidad a VISIBILITY_HIDDEN
para el que necesita el permiso en el manifiesto. Estoy tratando de establecer la visibilidad a DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED
así:
public class DMnotifyTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DownloadManager mgr = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
long downloadID = mgr
.enqueue(new DownloadManager.Request(Uri.parse("http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf"))
.setNotificationVisibility(
DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "hello.pdf")
.setDescription("my.test.pack Doc"));
}
}
lo que se traduce en este StackTrace:
E/AndroidRuntime(24794): Caused by: java.lang.SecurityException: Invalid value for visibility: 1
E/AndroidRuntime(24794): at android.os.Parcel.readException(Parcel.java:1321)
E/AndroidRuntime(24794): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)
E/AndroidRuntime(24794): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)
E/AndroidRuntime(24794): at android.content.ContentProviderProxy.insert(ContentProviderNative.java:447)
E/AndroidRuntime(24794): at android.content.ContentResolver.insert(ContentResolver.java:721)
E/AndroidRuntime(24794): at android.app.DownloadManager.enqueue(DownloadManager.java:877)
E/AndroidRuntime(24794): at my.test.pack.DMnotifyTestActivity.onCreate(DMnotifyTestActivity.java:18)
Sin establecer la visibilidad del código funciona bien. Ya he intentado agregar varios permisos al manifiesto, pero todavía no voy. Esto apunta al nivel 11, por lo tanto, nido de abeja y arriba. Permisos que he probado son:
- android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
- android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS
- android.permission.ACCESS_DOWNLOAD_MANAGER
- android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
Estoy teniendo el mismo problema. ¿Alguien que pueda arrojar algo de luz sobre esto? – dnkoutso
Lamentablemente, este es un error de Android. No hay mucho que pueda hacer al respecto a menos que desee arreglar el código de Google usted mismo. – Marc