Notice
Recent Posts
Recent Comments
Link
투케이2K
142. (AndroidStudio/android/java) tedpermission (테드 퍼미션) 라이브러리 사용해 퍼미션 요청 및 권한 거부 시 애플리케이션 설정 이동 본문
Android
142. (AndroidStudio/android/java) tedpermission (테드 퍼미션) 라이브러리 사용해 퍼미션 요청 및 권한 거부 시 애플리케이션 설정 이동
투케이2K 2021. 5. 13. 09:04/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//TODO [필요 라이브러리]
implementation 'gun0912.ted:tedpermission:2.2.2'
//TODO [Ted 라이브러리 사용해 퍼미션 확인 수행 메소드]
private void permissionCheck() {
try {
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_Main > permissionCheck() 메소드 : 전체 퍼미션 부여 확인 실행]");
Log.d("//===========//","================================================");
Log.d("---","---");
TedPermission.with(A_Main.this)
.setPermissionListener(permissionlistener) //퍼미션이 부여되었는지 확인 메소드 호출
/*.setDeniedMessage("권한에 대한 허가를 거부하면 모바일을 사용할 수 없습니다.\n" +
"\n" + "[설정]> [권한]에서 권한을 켜십시오.")
*/
.setPermissions(
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_CONTACTS,
Manifest.permission.WRITE_CONTACTS)
.check();
}
catch (Exception e){
e.printStackTrace();
}
}
//TODO [퍼미션이 부여되었는지 확인 메소드]
private PermissionListener permissionlistener = new PermissionListener() {
@Override
public void onPermissionGranted() {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Main > onPermissionGranted() 메소드 : 전체 퍼미션 부여 확인 성공]");
Log.w("//===========//","================================================");
Log.d("---","---");
//TODO [정상 수행할 동작 정의]
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_Main > onPermissionGranted() 메소드 : 전체 퍼미션 부여 확인 실패]");
Log.d("","\n"+"[거부된 권한 : "+String.valueOf(deniedPermissions.toString())+"]");
Log.e("//===========//","================================================");
Log.d("---","---");
//TODO [연속적으로 퍼미션을 허용 받기위해 재귀함수 루틴 사용]
//permissionCheck();
//TODO [Alert 팝업창 알림 실시]
getAlertDialog("[알림]",
"권한 허가를 동의 하지않으셨습니다."+"\n"
+"일부 기능 사용에 제한이 있을 수 있습니다"+"\n"
+"[설정] > [권한]에서 거부한 권한을 활성해주세요",
"설정", "취소", "");
}
};
//TODO [권한 거부 시 팝업창 호출 부분]
public void getAlertDialog(String header, String content, String ok, String no, String normal){
//TODO 타이틀 및 내용 표시
final String Tittle = header;
final String Message = content;
//TODO 버튼 이름 정의
String buttonNo = no;
String buttonYes = ok;
String buttonNature = normal;
//TODO AlertDialog 팝업창 생성
new AlertDialog.Builder(A_Main.this)
.setTitle(Tittle) //[팝업창 타이틀 지정]
//.setIcon(R.drawable.tk_app_icon) //[팝업창 아이콘 지정]
.setMessage(Message) //[팝업창 내용 지정]
.setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// TODO [애플리케이션 설정 창으로 이동한다]
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
overridePendingTransition(0,0);
}
})
.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.setNeutralButton(buttonNature, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments