우선 Android 11의 권한 업데이트 관련 글을 읽어보자. Android 11은 파일접근, 전화번호 읽어오기, 이번만 허용 등 보안관련 사항이 많이 변경 되었다.
developer.android.com/about/versions/11/privacy/permissions?hl=ko
즉, 폰의 전화번호를 읽어오기 위해서 이제부터는 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 |