1
私は外部ストレージとリムーバブルストレージの書き込みを許可しました。しかし、私はまだAndroid 7でDocumentFile.createDirectory()を使用してディレクトリを作成できません
Intent intent = storageVolume.createAccessIntent(null);
startActivityForResult(intent, 989);
アンドロイド7にSDカード上のどこにでも書き込むことはできません。ここで
RxPermissions.getInstance(getActivity())
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> {
if (!granted) return;
showAlternativeDirectoryChooser();//success
}, throwable -> {
});
は、フォルダ作成のコードです:
DocumentFile documentFile = DocumentFile.fromFile(dir);
DocumentFile test = documentFile.createDirectory("test_folder");
テスト== nullの
「dir」とは何ですか?あなたの質問を編集し、 'onActivityResult()'メソッド(ケース989を扱うため)と 'dir'がどこに移入されるのかを表示してください。 'RxPermissions'は' createAccessIntent() 'とは関係がないので、自由に削除してください。 – CommonsWare
@CommonsWareは、onActivityResultで結果をどのように処理する必要がありますか?今私は何もしません –
** 'startActivityForResult()'を呼び出すときはいつでも、結果を得るために 'onActivityResult()'を実装します。これが 'startActivityForResult()'のポイントです。あなたのケースでは、 'onActivityResult()'では 'Intent'が与えられ、' Intent'の 'Uri'はストレージボリュームへのアクセスを表します。 'DocumentFile.fromTreeUri()'でそれを使用して、あなたの質問で 'documentFile'と呼ぶものを取得します。 – CommonsWare