web-dev-qa-db-ja.com

シンプルAndroidディレクトリピッカー-どうやって?

Android Studioでコーディングを開始し、すごい気分です。

「ディレクトリピッカー」のコードを作成するにはどうすればよいですか。つまり、ボタンをクリックすると、ディレクトリのリストを表示できるシンプルなダイアログ/アクティビティ画面が表示されます。

また、そのディレクトリ内のすべてのファイルを配列変数に格納したいとします。 ([OK]ボタンをクリックすると)。

PS:私はここを検索し、いくつかのクールな「ファイル選択」を見つけましたが、mはDirectory Chooserを探しています。

前もって感謝します。

19
Android_Noob

Intent.ACTION_OPEN_DOCUMENT_TREEを使用してみてください

Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);

そして、onActivityResult data.getData()から結果URIを取得します。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case 9999:
            Log.i("Test", "Result URI " + data.getData());
            break;
    }
}
30
Milton

また、いくつかのライブラリを使用できます。
例えば:
https://github.com/passy/Android-DirectoryChooser

4
Dima

ディレクトリチューザーとファイルアクティビティのオープン/保存を行うオープンソースライブラリがあります。これはGitHubの https://github.com/BoardiesITSolutions/FileDirectoryPicker にあります。

Android APIレベル17以上で動作します

免責事項:私はそれを書いた

1
Boardy

Android 10(API 29))の時点で、外部ストレージへの直接アクセスはストレージアクセスフレームワークのために廃止されました https://developer.Android.com/guide/topics/providers/document-provider

0
kreker