일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Andorid
- 달러예금
- gradle
- 고금리
- Android
- RETROFIT
- Mac
- ndk r24
- EditText
- Swift
- kotlin
- 3rd framework
- 사전청약
- audio record
- ChatGPT
- KB
- java
- JetPack
- 용산 호반써밋 에이디션
- Android Studio
- 새마을금고
- ndkVersion
- CHAT GPT
- Data Binding
- MG더뱅킹정기예금
- 예금
- BindingAdapter
- arm-linux-androideabi
- 청약
- ios
- Today
- Total
pear
[android]Extenal File Access(over android 10) 본문
standard - android API / targetSdkVersion
val targetSdkVersion: Int = applicationContext.applicationInfo.targetSdkVersion
android9(28 or less)
WRITE_EXTERNAL_STORAGE
android10(29)
WRITE_EXTERNAL_STORAGE
<application
...
android:requestLegacyExternalStorage="true">
android11(30 over)
READ_EXTERNAL_STORAGE
MediaStore
SFA(Storage Access Framework)
ACTION_OPEN_DOCUMEN
ACTION_CREATE_DOCUMENT
OR
모든파일액세스
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore = "ScopedStorage" />
val resultLauncher:ActivityResultLauncher<Intent> = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {}
if (!Environment.isExternalStorageManager()) {
var intent = Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
resultLauncher.launch(intent)
}
MANAGE_EXTERNAL_STORAGE
https://support.google.com/googleplay/android-developer/answer/10467955
Play Console의 권한 선언 양식을 사용해 이 권한 및 위험성이 높은 기타 모든 권한을 선언해야 합니다.
앱에서 저장소 액세스 프레임워크 또는 MediaStore API 등 개인 정보를 더 안전하게 보호하는 권장사항을 효과적으로 사용할 수 없는 경우에만 모든 파일 액세스 권한을 요청해야 합니다.
앱의 권한은 허용된 용도로만 사용되어야 하며 앱의 핵심 기능과 직접적으로 연결되어야 합니다. 핵심 기능이 제공되지 않으면 앱이 '고장' 났거나 사용할 수 없게 된 것입니다. 핵심 기능 및 이러한 핵심 기능을 구성하는 모든 핵심 특징은 앱 설명에서 가장 두드러지게 소개 및 홍보되어야 합니다.
앱의 핵심 기능을 사용하기 위해 모든 파일 액세스 권한이 필요한 경우 개발자는 권한 선언 양식을 작성하고 Google Play의 승인을 받아야 합니다.
용도 | 대상 권한* |
파일 관리 앱의 핵심 목적에 앱 전용 저장공간 외부의 파일 및 폴더에 대한 액세스, 수정, 관리(유지보수 포함)가 포함됩니다. |
MANAGE_EXTERNAL_STORAGE |
백업 및 복원 앱 앱에서 백업 및 복원의 목적으로 앱 전용 저장공간 외부의 여러 디렉터리에 자동으로 액세스할 필요가 있어야 합니다. |
|
바이러스 백신 앱 앱의 핵심 목적이 기기를 검사하고 기기 사용자에게 바이러스 백신 보안 기능을 제공하는 데 있습니다. |
|
문서 관리 앱 앱 전용 또는 공유 저장공간 외부에 있는 호환 가능한 형식의 파일을 찾아 액세스하고 수정하는 앱이어야 합니다. 콘솔 선언에서 앱 전용 파일 액세스 또는 저장소 액세스 프레임워크(개인 정보를 안전하게 보호 옵션) 문서에 설명된 해결 방법이 앱 목적을 실현하는 데 충분하지 않은 이유를 설명해야 합니다. |
|
검색(기기) 앱의 핵심 목적이 기기의 외부 저장소에서 파일 및 폴더를 검색하는 데 있습니다. |
|
디스크/폴더 암호화 및 잠금 앱의 핵심 목적이 파일 및 폴더를 암호화하는 데 있습니다. |
|
기기 이전/휴대전화 데이터 전송 앱의 핵심 목적이 사용자가 새 기기로 이전할 수 있도록 지원하는 데 있습니다. |
예외
Google Play에서는 다음의 경우 위에 지정된 허용되는 용도에 해당하지 않는 앱에 일시적으로 예외를 허용할 수 있습니다.
- 권한 사용을 통해 앱의 핵심 기능을 사용할 수 있는 경우
- 현재 핵심 기능을 제공할 다른 방법이 없거나, 개인 정보를 더 안전하게 보호하는 대안(예: MediaStore API 또는 저장소 액세스 프레임워크)을 사용하면 핵심 기능에 연결된 앱의 주요 기능에 상당히 부정적인 영향을 미치는 경우
- 사용자 개인 정보 보호에 미치는 영향이 보안 및 개인 정보 보호 권장사항으로 완화되는 경우
개발자는 콘솔 선언에서 저장소 액세스 프레임워크 또는 MediaStore API가 앱의 목적을 실현하는 데 충분하지 않은 이유를 설명해야 합니다.
'android' 카테고리의 다른 글
[android]Scoped Storage(SAF) (0) | 2023.12.19 |
---|---|
[android] solved Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.9.0-runtime (0) | 2023.12.11 |
[android]okhttp & Retrofit (0) | 2023.08.10 |
[android] Thread와 Handler (0) | 2023.08.09 |
[android] List View and Recycler View (0) | 2023.08.09 |