問題タブ [scoped-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-external-storage - Android 10 でアンインストール永続メモリからテキスト ファイルを読み書きする方法
アプリでテキスト ファイルを 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 の厳格なプライバシー ポリシーにもかかわらず、ユーザーがアクセス許可を付与しているのに、なぜこれが可能ではないのかわかりません。どうもありがとう。