0

지정한 폴더를 관리하기 위해 DocumentsProvider를 만들고 싶습니다. 다른 응용 프로그램에서이 DocumentsProvider를 사용하여 폴더의 파일을 탐색/관리해야합니다.인 텐트를 사용하지 않고 직접 내 App에서 DocumentsProvider에 액세스하는 방법은 무엇입니까?

intent 및 startActivity를 사용하는 많은 샘플 코드를 본 다음 DocumentsUI를 사용하여 URI를 가져 오는 것을 보았습니다. 인 텐트를 사용하지 않고 내 앱에서 직접 DocumentsProvider에 액세스 할 수 있습니까?

내 DocumentsProvider에 고정 URI를 사용하려고 시도하고 DocumentsContract를 사용하여 액세스하려했지만 "SecurityException : UID 및 Uri에 대한 지속적인 권한 부여가 없습니다"라는 오류가 발생합니다. 또한 grantUriPermission()을 먼저 사용했지만 도움이되지 않습니다.

반환 된 인 텐트의 URI 대신 고정 된 (미리 정의 된) URI로 DocumentsProvider에 액세스 할 수 있습니까?

+0

'많은 수의 문서 코드를 봤어요. 그게 무슨 뜻인지 궁금합니다. 예를 들어 줄 수 있습니까? – greenapps

+0

'DocumentsProvider'의 요점은 저장 액세스 프레임 워크 (예 :'ACTION_OPEN_DOCUMENT')를 통해 다른 응용 프로그램이 액세스 할 수있는 문서를위한 것입니다. 그것이 당신이 원하는 것이 아니라면,'DocumentsProvider'를 구현하지 마십시오. 'ACTION_OPEN_DOCUMENT' 지원을 원하고'DocumentsProvider'를 직접 사용하기를 원한다면'DocumentsContract'를 사용해 볼 수도 있습니다 만, 클라이언트 응용 프로그램이 문서 작업에 대한 허가를 얻는 방법을 모르겠습니다. – CommonsWare

+0

예,이 방법을 시도했지만 사용 권한 문제가 발생했습니다. –

답변

0

커먼즈웨어 (CommonsWare)는이 코멘트에서 다른 목적을 위해 사용하려고 시도했지만 아마도 당신이 말한 것을 성취하는 것은 불가능하지 않다.

두 앱을 모두 소유하고있는 것으로 보이므로 sharedUserId을 지정하여 동일한 UID를 공유 할 수 있으므로 DocumentsProvider와 대화 할 수 있어야합니다.

또는 다른 응용 프로그램에 URI 권한을 부여하는 DocumentsProvider를 소유 한 특별한 활동을 응용 프로그램에서 정의 할 수 있습니다. 그런 다음 액세스 할 수 있어야합니다. UI가 아닌 활동을 시작하기위한 의도를 아직 실행해야하기 때문에 이것이 원하는지 확실하지는 않습니다.

관련 문제