0

У меня есть SendActivity, запускающая UploadService.Странное поведение разрешений на обслуживание

Проблема возникает, когда я позволяю SendActivity сразу же запускать другое действие и заканчивается. UploadService получает файл, который предполагается загрузить, от поставщика контента. Но когда SendActivity не является приоритетом в момент, когда служба пытается получить доступ к файлу через провайдера, я получаю «отказ в разрешении», хотя разрешение указано в моем манифесте.

java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image%3A24669 from pid=28913, uid=10441 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission() 
               at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:646) 

Может ли кто-нибудь помочь мне?

ответ

0

Я предполагаю, что вы проходите мимо Uri от SendActivity до UploadService. SendActivity, возможно, имеет право читать этот контент, но UploadService нет.

В Intent используется для запуска UploadService, вызовите addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) передать доступ на чтение из SendActivity в UploadService, и посмотреть, если это помогает. Если это не так, то возможно SendActivityтакже не имеет доступа для чтения, и в этом случае вам нужно будет посмотреть, как вы получаете Uri в первую очередь.

+0

Спасибо, ваше решение сработало! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^