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を見たことがありますが、その記事はもう見つかりません...
an app running on Android 10 or later must use Scoped Storage access
?それが何を意味するのか説明できますか?どの機能を考えていますか?たとえば、N用に提供されたストレージボリュームとストレージマネージャーは、Qですでに非推奨になっていることを知っています