Próbuję użyć pliku DownloadManager
, aby pobrać duże pliki PDF z mojej aplikacji. Chcę, aby powiadomienia były wyświetlane podczas pobierania, a także po zakończeniu pobierania. Jednak ustawienie widoczności powoduje powyżej wyjątku.DownloadManager.Request.setNotificationVisibility nie działa z jSecurityException: nieprawidłowa wartość dla widoczności: 1
Błąd ten jest inny od tego postu DownloadManager.Request.setNotificationVisibility fails with jSecurityException: invalid value for visibility: 2
Drugi post jest prośbą o pomoc przy ustawianiu widoczność VISIBILITY_HIDDEN
dla których konieczne są uprawnienia w manifeście. Próbuję ustawić widoczność DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED
tak:
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"));
}
}
co skutkuje tym 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)
Bez ustawienie widoczności kod działa poprawnie. Podjęto już próbę dodania różnych uprawnień do manifestu, ale nadal nie ma go. To jest na poziomie 11, więc plaster miodu i więcej. Uprawnienia próbowałem to:
- android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
- android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS
- android.permission.ACCESS_DOWNLOAD_MANAGER
- android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
Mam ten sam problem. Ktoś, kto może rzucić trochę światła na to? – dnkoutso
Niestety jest to błąd Androida. Niewiele można z tym zrobić, chyba że sam chcesz naprawić kod Google. – Marc