#やりたいこと
Androidスマホを使用し、テキストファイルを指定したファイル名でパブリックフォルダ(Document)に新規作成・追記をしたいです。
作成したテキストファイルはWindowsPCからUSB接続して取り出します。
#現状
今までEnvironment.getExternalStorageDirectory().getPath()
を使用して内蔵ストレージの直下に任意のフォルダを作成して保存していましたが、非推奨になってしまいましたので代替え機能を検討しています。
#検討したこと
項目 | 内容 | 課題 |
---|---|---|
getExternalStorageDirectory | 任意のフォルダに保存出来る | 非推奨 |
getExternalStoragePublicDirectory | パブリックフォルダに保存出来る | 非推奨 |
getExternalFilesDir | プライベートフォルダに保存 | アンインストールでテキストファイルが消える、テキストファイルまでの階層が深い |
SAF | 入力ダイアログを表示してパブリックフォルダに保存 | 入力ダイアログは不要、ファイル名を変えられてしまう可能性がある、手順が増えて面倒 |
MediaStore | 画像や動画や音楽ファイルを保存 | テキストファイルに対応していない |
Java
1String strDep1 = Environment.getExternalStorageDirectory().getPath() + "/test"; // 内蔵ストレージ直下にtestフォルダを指定したパス 非推奨 2String strDep2 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getPath(); // パブリックドキュメントのパス 非推奨 3 4// SAFを使用 5Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); 6intent.setType("text/plain"); 7String strFileName = "test.csv"; 8intent.putExtra(Intent.EXTRA_TITLE, strFileName); 9startActivityForResult(intent, 1); // ファイル名入力ダイアログを表示 10
#実現したいこと
将来的に選択肢はSAFしか無さそうですが、入力ダイアログを表示させずにテキストファイルを保存する様にすることは可能でしょうか?
(Intentを使わず、Uriに直接フォルダを入力する等)
よろしくお願い致します。
あなたの回答
tips
プレビュー