問題タブ [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.

0 投票する
1 に答える
383 参照

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