2012-02-19 6 views
38

Sto cercando di utilizzare DownloadManager in una classe Service di mine:DownloadManager.Request.setNotificationVisibility fallisce con jSecurityException: valore non valido per la visibilità: 2

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); 

Senza setNotificationVisibility, questo codice funziona bene. Ma visualizza una notifica, che non desidero, perché uso questo codice per le immagini con caricamento lento in un ListView.

ho capito, questa notifica può essere nascosta con

downloadRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN); 

Ma in questo caso, i miei applicazione si blocca con:

02-19 02: 24: 24,055: E/AndroidRuntime (2572): java.lang.SecurityException: valore non valido per la visibilità: 2 02-19 02: 24: 24.055: E/AndroidRuntime (2572): a 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 Febbraio: 24: 24,055: E/AndroidRuntime (2572): a android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:135) 02 -19 02: 24: 24.055: E/AndroidRuntime (2572): a android.content.ContentProviderProxy.insert (ContentProviderNative.java:415) 02-19 02: 24: 24.055: E/AndroidRuntime (2572): a android.content.ContentResolver.insert (ContentResolver.java:730) 02-19 02: 24: 24.055: E/AndroidRuntime (2572): a android.app.DownloadManager.enqueue (DownloadManager.java:885) 02-19 02: 24: 24.055: E/AndroidRuntime (2572): a MyService.getImage (MyService.java:112)

Cosa c'è di sbagliato con setNotificationVisibility? Come posso avere la notifica?

+0

downloadRequest.setNotificationVisibility (...) mi ha aiutato ... grazie – CoDe

+0

prima di utilizzare questo metodo: downloadRequest.setNotificationVisibility (...) tieni presente che viene aggiunto al livello API 11 – ozmank

risposta

95

sono necessari i seguenti permessi nel manifesto come da documentazione:

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

come indicato nella documentazione ... Grazie! – rds

+4

downloadRequest.setVisibleInDownloadsUi (....) un'altra utile API per nasconderlo dall'interfaccia utente di download. – CoDe

+3

Non vedo questa autorizzazione –

Problemi correlati