우선 사용하기 위해서 gradle을 추가해줍니다.
implementation 'gun0912.ted:tedpermission:2.2.3'
PermissionListener로 접근 허용/거부 시 실행할 코드 작성가능하고,
TedPermission클래스를 이용해서 권한체크에 필요한 설정을 하실 수 있습니다.
PermissionListener permissionListener = new PermissionListener() {
@Override
public void onPermissionGranted() {
// 접근허용 시 실행할 코드
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
// 접근거부 시 실행할 코드
}
};
TedPermission.with(this)
.setPermissionListener(permissionListener)
.setDeniedMessage("접근 거부하셨습니다.\n[설정] - [권한]에서 권한을 허용해주세요.")
.setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)
.check();
- setRationalMessage() : 권한체크 하기전 Dialog 메시지 설정
- setDeniedMessage() : 권한 거부했을 때 띄울 Dialog 메시지 설정
- setDeniedCloseButtonText() : 권한 거부 시 뜨는 Dialog의 [닫기]버튼 텍스트 설정
- setGotoSettingButtonText() : 권한 거부 시 [설정]버튼 텍스트 설정
- setGotoSettiongButton() : 권한 거부 시 [설정]버튼을 보여줄지 설정 (true / false)
※주의
TedPermission 클래스에서 setPermissions를 여러개 추가하시면 안됩니다.
저장공간에 대한 permission의 경우 .
setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)
와 같이 적어주셔야 됩니다.
저처럼 setPermissions 두번 작성했다가 못찾으면 고통받습니다.
.setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.setPermissions(Manifest.permission.READ_EXTERNAL_STORAGE)