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

謝謝,你的解決方案工作! :) –