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으로 가져온 Storage Volumes 및 Storage Manager는 이미 Q에서 더 이상 사용되지 않습니다.