[java] Android Q : 범위가 지정된 스토리지의 SQLite 데이터베이스
Android Q에는 새로운 범위 스토리지 기능이 도입되었습니다 .
Android 10 (API 레벨 29) 이상을 대상으로하는 앱에는 기본적으로 외부 스토리지 또는 범위 스토리지에 대한 범위 액세스가 제공됩니다. 이러한 앱은 외부 저장소의 앱별 디렉토리뿐만 아니라 앱이 생성 한 특정 유형의 미디어에만 액세스 할 수 있습니다.
외부 저장소에 SQLite 데이터베이스를 만드는 응용 프로그램이 있습니다. 예를 들어 응용 프로그램이 데이터베이스를 여전히 제거 할 때 나중에 복구로 사용하거나 Android 장치 외부에서 사용할 수 있습니다 (PC라고합시다)
Android Q와 동일한 효과를 얻으려면 어떻게해야합니까? 데이터베이스가 외부 공용 디렉토리에 저장된 경우 더 정확하게-표준을 사용 하여이 데이터베이스를 어떻게 읽을 수 SQLiteOpenHelper
있습니까?
답변
https://developer.android.com/training/data-storage/compatibility 문서에서 솔루션을 사용해보십시오.
- Android 9 (API 레벨 28) 이하를 대상으로합니다.
- Android 10 (API 레벨 29) 이상을 대상으로하는 경우 앱의 매니페스트 파일에서 값을
requestLegacyExternalStorage
로 설정true
하십시오.
<manifest ... >
<!-- This attribute is "false" by default on apps targeting Android 10 or higher. -->
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>