アプリでテキスト ファイルを 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 の厳格なプライバシー ポリシーにもかかわらず、ユーザーがアクセス許可を付与しているのに、なぜこれが可能ではないのかわかりません。どうもありがとう。