Written by
LSM
on
on
TIL:SAF URI 권한 유지
SAF URI 권한 유지
- ACTION_OPEN_DOCUMENT 인텐트를 통해서 받은 uri를 다른 Activity에서 다시 사용하려 하니 다음과 같은 에러를 받았다.
Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider
- URI에 권한을 주지 않아서 다음과 같은 에러가 발생한 것이다.
보안성 목적으로 생긴 듯 싶은데, 너무 불편하다. 문서를 찾아보니 uri에 권한을 주어 지속적으로 사용할 수 있게 하는 방법이 있었다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
...
getContentResolver().takePersistablePermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
...
}
- Intent로부터 받은 uri에 takePersistablePermission로 권한을 주어 uri를 계속적으로 사용할 수 있게 된다.
References
- https://developer.android.com/guide/topics/providers/document-provider?hl=ko#permissions