この回答には、 ACTION_OPEN_DOCUMENT_TREE の使用に関するいくつかの良い情報があります:
Android 5.0 (Lollipop) 向けに提供された新しい SD カード アクセス API の使用方法
この回答には、「はい、ACTION_OPEN_DOCUMENT_TREE インテントにより、既存のファイルと新しく作成されたファイルとディレクトリの両方に再帰的にアクセスできます」というステートメントがあります。
これは私の経験で見つけたものではないため、これを正しく解釈しているとは完全には言えません。ユーザーがルート ディレクトリを選択すると、次の権限が保持されます。
content://com.android.externalstorage.documents/tree/primary%3A
後で、次の子パスにアクセスしたいと思います。
content://com.android.externalstorage.documents/tree/primary%3APictures%2FScreenshots
次に、次のように DocumentFile にアクセスしようとします。
DocumentFile fromDir = DocumentFile.fromTreeUri(this, fromUri);
boolean canRead = fromDir.canRead();
fromDir を読み取ることができず、権限を付与したルート ディレクトリからしか読み取ることができません。
再帰的な許可を要求するために必要なこと、またはこれを達成するための他の簡単な方法が欠けていることはありますか?