0

私はSendActivityを取得しており、UploadServiceを起動します。奇妙なサービス許可の振る舞い

問題は、SendActivityがすぐに別のアクティビティを開始させて終了するときに発生します。 UploadServiceは、コンテンツプロバイダからアップロードするファイルを取得します。しかし、SendActivityがプロバイダを介してファイルにアクセスしようとしている瞬間に私が前景でないとき、私のマニフェストに権限がリストされていますが、 "Permission Denial"が表示されます。

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

UriSendActivityからUploadServiceに渡していると思います。 SendActivityはおそらくそのコンテンツを読む権利を持っていますが、UploadServiceはありません。 UploadServiceを開始するために使用Intent

UploadServiceSendActivityからの読み出しアクセスを転送するaddFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)を呼び出し、それが助けかどうかを確認します。そうでない場合は、おそらくSendActivityまたには読み取りアクセス権がありません。この場合、最初にUriの入手方法を調べる必要があります。

+0

ありがとうございました。 :) –