Чи є простий виклик API, який підкаже мені, чи повинен додаток, що працює на Android 10 або пізнішої версії, скористається доступом до масштабного зберігання, тобто якщо нормальний доступ до файлів, наприклад "Legacy External Storage" відключений? Зауважте, що навіть якщо додаток в 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
? Чи можете ви пояснити, що ви маєте на увазі під цим? Які fuctions ви маєте на увазі? Я знаю, що, наприклад, обсяги зберігання та диспетчер пам’яті, які були передані для N, уже застаріли для Q.