1
Android 10以降でレガシー外部ストレージアクセスが無効になっている場合にプログラムでテストする
Android 10以降で実行されているアプリがスコープストレージアクセスを使用する必要があるかどうか、つまり通常のファイルアクセス、つまり「レガシー外部ストレージ」が無効になっている場合に通知する単純なAPI呼び出しはありますか?AndroidManifest.xmlのアプリであっても、セクションが宣言されていることに注意してください。 android:requestLegacyExternalStorage="true" ファイルへのアクセスは、今後のGoogleポリシーの変更により引き続き拒否される可能性があるため、この値をテストしても意味がありません。私が見つけた唯一の方法は、外部ストレージのルートディレクトリが読み取り可能かどうかをテストすることですが、そのためには、レガシーストレージが無効になっている場合、アプリはまずストレージ権限を要求する必要があります。 public static boolean mustUseScopedStorage() { // Impractical must first ask for useless Storage permission... File exSD = Environment.getExternalStorageDirectory(); return !exSD.canRead(); // this test works only if Storage permission was granted. } これを検出する新しいAPIを見たことがありますが、その記事はもう見つかりません...