指定したフォルダを管理するためにDocumentsProviderを作成します。私は別のアプリがこのDocumentsProviderを使用してフォルダ内のファイルを閲覧/管理する必要があります。インテントを使用せずに直接私のアプリケーションでDocumentsProviderにアクセスするには?
intentとstartActivityを使用し、次にDocumentUIを使用してURIを取得するサンプルコードが多数見つかりました。インテントを使わずに直接アプリケーションでDocumentsProviderにアクセスすることは可能ですか?
DocumentsProviderで固定URIを使用しようとしましたが、DocumentsContractを使用してアクセスしようとしましたが、 "SecurityException:UIDとUriで永続的なアクセス許可が見つかりませんでした"というメッセージが表示されます。私もgrantUriPermission()を使用しましたが、それは役に立ちません。
返されたインテントのURIではなく、固定(定義済み)URIを使用してDocumentsProviderにアクセスする方法はありますか?
「DoSUIを呼び出す多くのサンプルコードを見た。あなたがそれで何を意味するのだろうか?あなたは例を挙げることができますか? – greenapps
'DocumentsProvider'のポイントは、それらのドキュメントがストレージアクセスフレームワーク(例えば、' ACTION_OPEN_DOCUMENT')を介して他のアプリケーションにアクセスできるようにすることです。それがあなたが望むものでないなら、 'DocumentsProvider'を実装しないでください。 'ACTION_OPEN_DOCUMENT'をサポートし、' DocumentsProvider'で直接操作したい場合は、 'DocumentsContract'を試してみることもできますが、クライアントアプリケーションがどのようにドキュメントを操作する権限を得るのか分かりません。 – CommonsWare
はい、私はこれを試しましたが、あなたが言ったように許可の問題が発生します。 –