Esiste una semplice chiamata API che mi direbbe se un'app in esecuzione su Android 10 o versioni successive deve utilizzare l'accesso alla memorizzazione con ambito, ovvero se il normale accesso ai file, noto anche come "Memoria esterna legacy" è disabilitato? Si noti che anche se l'app in AndroidManifest.xml, la sezione ha dichiarato:
android:requestLegacyExternalStorage="true"
l'accesso al file potrebbe ancora essere negato a causa di modifiche delle norme di Google in futuro, quindi testare questo valore è inutile. L'unico modo che ho trovato è verificare se la directory principale di archiviazione esterna è leggibile, ma l'app deve prima richiedere l'autorizzazione di archiviazione, che è inutile per qualsiasi altra cosa, se l'archiviazione legacy è disabilitata.
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.
}
Penso di aver visto una volta una nuova API per rilevarlo, ma non riesco più a trovare quell'articolo ...
an app running on Android 10 or later must use Scoped Storage access
? Puoi spiegarci cosa intendi con quello? Quali funzioni hai in mente? So che ad esempio i volumi di archiviazione e il gestore archiviazione che sono stati portati per N sono già