반응형
우선 Android 11의 권한 업데이트 관련 글을 읽어보자. Android 11은 파일접근, 전화번호 읽어오기, 이번만 허용 등 보안관련 사항이 많이 변경 되었다.
developer.android.com/about/versions/11/privacy/permissions?hl=ko
Android 11의 권한 업데이트 | Android 개발자 | Android Developers
Android 11에서는 사용자가 위치, 마이크, 카메라에 관해 더욱 세분화된 권한을 지정할 수 있습니다. 또한 시스템은 Android 11 이상을 타겟팅하는 사용하지 않는 앱의 권한을 재설정하며 앱은 시스
developer.android.com
즉, 폰의 전화번호를 읽어오기 위해서 이제부터는 READ_PHONE_NUMBERS를 사용하면 된다. 그러나 기존의 사용자 또는 하위 버전에도 제공해 주어야 하기 때문에 몇가지 처리가 필요하다.
AndroidManifest.xml 선언
<uses-permission android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="29"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
권한요청 예시
fun requestAllPermissions(): Boolean{
if(ContextCompat.checkSelfPermission(activity,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) Manifest.permission.READ_PHONE_NUMBERS else Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED){
var permissions: Array<String> = arrayOf(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) Manifest.permission.READ_PHONE_NUMBERS else Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.CAMERA
)
ActivityCompat.requestPermissions(activity, permissions, 0)
return false
}
return true
}
반응형
'android' 카테고리의 다른 글
[android] Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains (0) | 2021.01.29 |
---|---|
[android] android 10에서 외부 폴더 접근하기 #requestLegacyExternalStorage (0) | 2021.01.29 |
[android] 안드로이드 빠른 스플래시 처리 (#splash) (0) | 2021.01.15 |
[kotlin] 안드로이드 권한처리 onRequestPermissionsResult (한번에 여러개 요청, 다시묻지않기 체크) (0) | 2021.01.14 |
[kotlin] for문 다양한 사용법 (0) | 2021.01.12 |