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

我的猜测是你通过UriSendActivityUploadServiceSendActivity也许有权读取该内容,但UploadService不具有。

在用于启动UploadService,叫addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)来进行读操作SendActivity转移到UploadService,看看有没有什么帮助的Intent。如果没有,那么也许SendActivity没有读取权限,在这种情况下,你需要看看你是如何得到Uri摆在首位。

+0

谢谢,你的解决方案工作! :) –