1

アプリでテキスト ファイルを Documents フォルダー (またはアプリのアンインストール後も保持されるメモリのその他の部分) に書き込むようにします。

Android 9 (SDK 28) までは、Documents フォルダーに次のようにアクセスできました。

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);

これは、新しいスコープ メモリ ポリシーにより非推奨になりました。公式ドキュメントによると

アプリは、Context#getExternalFilesDir(String)、MediaStore、または Intent#ACTION_OPEN_DOCUMENT などの代替手段に移行することにより、共有/外部ストレージに保存されているコンテンツに引き続きアクセスできます。

最初のオプションは、Context#getExternalFilesDir(String)私が望むものではない

アプリケーションのアンインストール時にこれらのファイルが削除されるという点で、これは getFilesDir() に似ています。

3 番目のオプションIntent#ACTION_OPEN_DOCUMENT は、ファイルにアクセスする前に書き込みたいため、十分ではありません。

MediaStore唯一の方法のようです。MediaStore でいくつかの不完全なコード例を見てきましたが、網羅的な答えを見つけることができませんでした。

Android 10 でアンインストール永続メモリからテキスト ファイルを読み書きする方法を示す完全な Java フラグメントを提供していただけますか? Android 10 の厳格なプライバシー ポリシーにもかかわらず、ユーザーがアクセス許可を付与しているのに、なぜこれが可能ではないのかわかりません。どうもありがとう。

4

1 に答える 1