[Android/Kotlin] 권한(Permission) 체크 - TedPermission 라이브러리 사용

SoyoungLee·2022년 7월 15일
0

안드로이드/코틀린

목록 보기
27/68
post-thumbnail
post-custom-banner

💌[안드로이드/코틀린] 권한(Permission) 체크 - TedPermission 라이브러리 사용

📌 What is TedPermission?

  • Android 6.0 Marshmallow로 업데이트한 후에는 권한 체크를 AndroidManifest.xml 뿐만 아니라 런타임에 권한을 요청해야 한다.

  • 위험한 권한(카메라, 주소록, 전화번호 등) 을 사용하는 경우 런타임에 확인하고 요청해야 한다.

  • 권한 요청, 관리를 위해 checkSelfPermission(), requestPermissions(), onRequestPermissionsResult(), onActivityResult() 를 이용해 구현할 수 있지만 매우 복잡하고 어렵다.
    --> TedPermission 라이브러리를 사용하면 간단하게 구현 가능

https://github.com/ParkSangGwon/TedPermission

📌 앱 수준의 gradle 에 추가

// Permission 요청, 관리를 위한 라이브러리
implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0'

📌 manifest 에 추가

<!--네트워크로만 위치 측정-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--GPS 센서를 사용하여 위치 측정-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

📌 사용

class GoogleMapsActivity : AppCompatActivity(), PermissionListener {

		// 맵 위치 권한 설정을 확인
        if (Build.VERSION.SDK_INT >= 23) {
            TedPermission.create()
                .setPermissionListener(this)
                .setRationaleMessage("위치 정보 제공이 필요한 서비스입니다.")
                .setDeniedMessage("[설정] -> [권한]에서 권한 변경이 가능합니다.")
                .setDeniedCloseButtonText("닫기")
                .setGotoSettingButtonText("설정")
                .setRationaleTitle("HELLO")
                .setPermissions(
                    Manifest.permission.ACCESS_COARSE_LOCATION,
                    Manifest.permission.ACCESS_FINE_LOCATION
                )
                .check()
        }
        
        
        /** PERMISSION CHECK **/
    override fun onPermissionGranted() {
        Util.Toast(mContext,"위치 정보 제공이 완료되었습니다.")
    }

    override fun onPermissionDenied(deniedPermissions: MutableList<String>?) {
        Util.Toast(mContext,"위치 정보 제공이 거부되었습니다.")
    }
        
}

setPermissions 안에 요청할 권한들을 넣어준다
setDeniedMessage 는 권한이 없을 때 뜨는 다이얼로그 셋팅
onPermissionGranted() : 이미 권한이 있거나 사용자가 권한을 허용했을 때 호출
onPermissionDenied() : 요청이 거부 되었을 때 호출

출처 : https://developer.android.com/training/permissions/requesting.html?hl=ko
https://developer.android.com/reference/kotlin/android/Manifest.permission#summary
https://hanyeop.tistory.com/139

profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 10월 20일

글 잘보고 가요 ㅋㅋㅋ

답글 달기