Android (안드로이드)

[Android] 권한 체크 / Permission Check / TedPermission Library / 테드 퍼미션 라이브러리

Oscar:) 2024. 1. 11. 06:04

 

이번 포스팅에서는 권한 체크 라이브러리인

TedPermission 을 소개한다.

 


 

권한 체크를 굳이 라이브러리를 써?

 

 

Android에서 권한을 관리하기 위해서는 다음과 같은 절차가 필요하다.

 

1. Manifest 파일에 사용할 권한을 추가한다.

2. checkSelfPermission() 메서드로 권한 유무를 체크한다.

3. requestPermissions() 메서드로 권한을 요청한다.

4. onRequestPermissionsResult() 메서드로 응답을 받아 확인한다.

5. 상황에 따라 별도의 다이얼로그를 구성해줘야 한다.

6. 원하는 동작을 구현시킨다.

 

위 과정은 상당히 번거롭다.

어째 개발 공부를 할수록 편한 것만 찾게 되는 건 기분탓 일까

 

 

하지만 TedPermission 과 함께라면 개발자의 입장에서

1번, 6번 이렇게 2개만 처리하면 뚝딱이다.

(거의 밥도둑)

 

 

 


 

TedPermission

 

먼저, TedPermission 만들어주신 Ted님(박상권님) 께 감사드리며

깃허브 링크를 남긴다.

 

 

GitHub - ParkSangGwon/TedPermission: Easy check permission library for Android Marshmallow

Easy check permission library for Android Marshmallow - GitHub - ParkSangGwon/TedPermission: Easy check permission library for Android Marshmallow

github.com

 

위 링크에서 자세한 정보를 확인할 수 있다.

 

 


 

사용법

 

 

간단하게 위치 권한을 다뤄보겠다.

 

 

✅ build.gradle(모듈 수준)에 의존성을 추가해 준다.

 

implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0'

 

최신 버전은 위 링크를 통해 확인하기 바란다.

 

 

 

✅ Manifest 파일에 사용할 권한 추가

 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 

위치 권한을 이용하기 위해 2가지 권한을 작성해 준다.

 

 

 

✅ TedPermission

 

기본적인 문법은 다음과 같다.

 

TedPermission.create()
             .setPermissionListener(new PermissionListener() {
                 @Override
                 public void onPermissionGranted() {

                     // TODO

                 }

                 @Override
                 public void onPermissionDenied(List<String> deniedPermissions) {

                     // TODO
                     
                 }
             })
             .setDeniedMessage("권한을 허용해 주셔야\n사용 가능합니다.")
             .setPermissions(Manifest.permission.ACCESS_FINE_LOCATION,
                             Manifest.permission.ACCESS_COARSE_LOCATION)
             .check();

 

 

create(), check() 등 간단한 것은 넘기고,

주요 메서드만 알아보자.

 

 

● setPermissionListener()

 

PermissionListener를 통해 권한 확인 결과를 처리한다.

 

승인 유무에 따라

onPermissionGranted() 또는 onPermissionDenied() 결과가 반환된다.

 

이곳에 추후 동작을 구현해 주면 된다.

 

 

● setDeniedMessage()

 

권한이 거부되었을 때 다이얼로그가 나타나는데,

그곳에 들어갈 메세지를 작성해 주면 된다.

 

 

● setPermissions()

 

사용할 권한들을 추가해준다.

 

권한이 여러개라면 인수를 추가로 늘려가며 여러개 작성해야 한다.

 

잘못된 예)

.setPermissions(권한1)

.setPermissions(권한2)

 

올바른 예)

.setPermissions(권한1, 권한2)

 

 

 

✅ 결과 화면

 

● 권한 거부

 

 

 

권한 거부 시 위에서 작성한 텍스트와 함께 다이얼로그가 띄워지고,

설정 앱으로 바로 이동할 수 있는 버튼까지 제공된다.

 

 

● 권한 허용

 

 

 

권한 허용 시 위경도를 받아와서 띄워준 모습이다.

 

위경도를 받아오는게 목적인 포스팅이 아니기에,

관련 코드는 생략한다.

 

 

 


 

 

 

개인이 만든 라이브러리 중에서도

큰 도움이 되는 라이브러리가 정말 많은 것 같다.

 

 

요즘 문득, 라이브러리를 만들어보고 싶다는 생각이 든다.