선생님, 개발을 잘하고 싶어요.

[잡학] 안드로이드 권한, 권한 요청 본문

개발/android 개발

[잡학] 안드로이드 권한, 권한 요청

알고싶은 승민 2020. 6. 28. 23:35

권한의 목적

안드로이드 유저의 프라이버시를 보호하기 위해서 필요하다.

권한을 사용하기 위해서

  • AndroidManifest.xml 파일에 사용하고 싶은 권한을 uses-permission 태그를 통해 작성한다.

 

 

 

권한 종류

  • Normal permissions

    → 단순히 메니페스트에만 정의하면 설치시에 자동으로 권한을 보장한다.

  • Dangerous permissions

    → 런타임에 명시적으로 사용자에게 권한을 요청해야 하는 골치거리

    → 주로 사용자 개인 정보와 관련된 권한

핵심 함수

ContextCompat.checkSelfPermission

→ 특정 권한이 PackageManager.PERMISSION_DENIED 인지, PackageManager.PERMISSION_GRANTED 인지 반환 한다.

 

ActivityCompat.shouldShowRequestPermissionRationale

→ 사용자가 권한 요청을 명시적으로 거부한 경우 true를 반환한다.

→ 사용자가 권한 요청을 처음 보거나, 다시 묻지 않음 선택한 경우, 권한을 허용한 경우 false를 반환한다.

 

결론적으로, shouldShowRequestPermissionRationaleonRequestPermissionsResult 이외의 코드에서 사용하면 비결정적이다. 

 

ActivityCompat.requestPermissions

→ 사용자에게 명시적으로 권한을 요청한다.

→ 안드로이드 시스템 표준 대화상자로 사용자에게 권한을 요구하며, 변경할 수 없다.

 

onRequestPermissionsResult

onActivityResult처럼, requestPermissions를 통해 받아온 사용자 응답에 따라 동작을 정의할 수 있다.

참조 사이트

https://developer.android.com/guide/topics/permissions/overview

Comments