[android] 권한 설정 실패 시의 대처 방법

Android 앱을 개발할 때 사용자의 권한이 필요한 경우가 많습니다. 하지만 사용자가 권한을 거부할 수도 있고, 잘못된 정보를 제공할 수도 있습니다. 이때 해당 상황을 대비하는 방법에 대해 알아봅니다.

권한 확인

앱이 실행될 때마다 사용자의 권한을 확인하는 것이 좋습니다. 사용자가 이전에 거부했더라도 나중에 권한을 다시 허용할 수 있기 때문입니다.

// 권한 확인
private boolean checkPermission(String permission) {
    int result = ContextCompat.checkSelfPermission(this, permission);
    return result == PackageManager.PERMISSION_GRANTED;
}

권한 요청

권한이 거부된 경우, 사용자에게 권한 요청 다이얼로그를 표시해야 합니다.

// 권한 요청
private void requestPermission(String permission) {
    ActivityCompat.requestPermissions(this, new String[]{permission}, REQUEST_CODE);
}

권한 설정 실패 처리

사용자가 권한 설정을 실패했을 때, 이에 대한 적절한 처리가 필요합니다. 사용자에게 권한이 꼭 필요한 이유를 설명하고, 앱 설정 화면으로 이동할 수 있는 링크를 제공하는 것이 좋습니다.

// 권한 설정 실패 처리
private void showPermissionFailedDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("권한 설정 필요");
    builder.setMessage("권한이 필요한 이유에 대한 설명을 작성하세요.");
    builder.setPositiveButton("설정", (dialog, which) -> {
        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        Uri uri = Uri.fromParts("package", getPackageName(), null);
        intent.setData(uri);
        startActivity(intent);
    });
    builder.setNegativeButton("취소", (dialog, which) -> dialog.dismiss());
    builder.show();
}

위와 같은 방법으로 권한 설정 실패 시에도 사용자에게 친절한 안내를 제공할 수 있으며, 더 나은 사용자 경험을 제공할 수 있습니다.

참고 자료