안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

안드로이드에서는 특정 동작을 위하여 권한이 필요하다.

마시멜로 버전 이전에는 앱 설치시 모든 권한이 요청되었지만 이후 버전에서는 권한이 크게 일반 권한과 위험 권한으로 나뉘었다.

 

일반권한은 개인정보를 요청하지 않는 권한으로 앱 설치시 권한을 요청하며, 대표적으로 인터넷 접근 권한, 와이파이 접근 권한, 블루투스 접근 권한 등이 있다.

 

위험권한은 개인정보를 요청하는 권한으로 그 기능이 동작할때 권한을 요청하며, 대표적으로 카메라, 위치, 갤러리, 주소록 권한 등이 있다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan
▲ 위험 권한의 종류

그룹 내 권한이 허용되었다면, 동일 그룹내 권한이 요청될 경우 자동으로 허용한다.

 

안드로이드 developer에서 퍼미션 정보들을 확인할 수 있다.

developer.android.com/reference/kotlin/android/Manifest.permission#summary

 

Manifest.permission  |  Android 개발자  |  Android Developers

 

developer.android.com


위치정보 사용하기

권한 추가

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

위치권한을 위해 퍼미션을 추가해준다.

FINE은 GPS 센서, COARSE는 네트워크로 위치를 측정한다.

백그라운드 작업이 필요하지 않다면 백그라운드 로케이션은 추가하지 않아도 된다.

 

권한 확인하기

runStartFab.setOnClickListener {

                // 권한 체크해서 권한이 있을 때
                if(ContextCompat.checkSelfPermission(requireActivity(),android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    && ContextCompat.checkSelfPermission(requireActivity(),android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    && ContextCompat.checkSelfPermission(requireActivity(),android.Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED){

                    findNavController().navigate(R.id.action_runFragment_to_trackingActivity)
                }

                // 권한이 없을 때 권한을 요구함
                else {
                    ActivityCompat.requestPermissions(
                        requireActivity(),
                        arrayOf(android.Manifest.permission.ACCESS_COARSE_LOCATION,
                            android.Manifest.permission.ACCESS_FINE_LOCATION,
                            android.Manifest.permission.ACCESS_BACKGROUND_LOCATION),
                        1
                    )
                }
            }

 

권한 체크

ContextCompat.checkSelfPermission(컨텍스트(), 퍼미션정보) == PackageManager.PERMISSION_GRANTED

checkSelfPermission으로 권한이 있는지 여부를 확인할 수 있다.

액티비티에서는 자기 자신을, 프래그먼트에서 사용할 때에는 requireActivity를  context로 사용한다.

 

PERMISSION_DENIED 를 사용할 경우 권한이 없다의 조건으로 사용할 수 있다.

 

 

권한 요청

ActivityCompat.requestPermissions(컨텍스트(),arrayOf(퍼미션정보),요청값)

requestPermissions로 권한을 요청할 수 있다.

qrrayof의 인자로 권한들을 나열해주면 되고, 요청값이 반환된다.

 

 

요청 결과

// 권한 요청 결과 처리
    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)

        if(requestCode == 1){
            if(grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                Snackbar.make(binding.root, "위치 권한이 동의 되었습니다.", Snackbar.LENGTH_SHORT).show()
            }
            else{
                Snackbar.make(binding.root, "권한에 동의하지 않을 경우 이용할 수 없습니다.", Snackbar.LENGTH_SHORT).show()
            }
        }
    }

권한이 요청되고 나면 onRequestPermissionsResult 이 호출된다.

요청값을 확인하여

grantResults가 비어있지 않고, 첫번째 값이 동의 상태라면 권한이 있는 것이므로 동의한 내용을 처리해주면 되고,

 

아닐 경우 동의하지 않은 것이다.

 

단, 프래그먼트에서 권한을 요청했을경우 onRequestPermissionsResult 는 부모액티비티에서 호출된다.

 

반응형

공유하기

게시글 관리

구독하기경험의 기록

안드로이드 갤럭시 스마트폰에서 어플을 처음 설치하게 되면 앱 접근 권한을 설정하게 됩니다. 앱 접근 권한이란 방송통신위원회에서 개인정보 보호 규정을 위해 만든 용어로 어플의 기능을 실행할 수 있게 하는 역할을 합니다. 대표적인 권한으로는 전화와 파일이 있는데 이러한 권한들을 설정해 주셔야 어플을 정상적으로 사용하는 것이 가능해집니다.

 

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan
엡-접근-권한-허용-창

 

그런데 종종 앱을 처음 설치할 때 몇 가지 권한을 설정을 하지 않아서 어플을 사용할 수 없게 되거나 기능이 제한되는 경우가 생기기도 합니다. 이런 경우 접근 권한을 변경해 주시면 해결이 가능한데요. 하지만 어플 설치 시에만 설정이 가능한 분들은 조금 난감하실 겁니다.

 

이런 분들은 스마트폰에서 자체적으로 권한을 변경해 주셔야 합니다. 참고로 저는 갤럭시를 기준으로 설명드리지만 LG 등 안드로이드 핸드폰을 사용하시는 분들은 거의 동일한 맥락으로 진행해 주시면 될 거 같습니다.

 

 

갤럭시 핸드폰 안드로이드 앱 접근 권한 설정 방법

 

  1. 어플 삭제 후 다시 설치하기
  2. 안드로이드 앱 권한 설정 변경하기

 

갤럭시 스마트폰에서 앱 접근 권한을 설정하는 방법은 위와 같이 크게 2가지가 있습니다.

 

1. 어플 삭제 후 다시 설치하기

 

가장 확실한 방법으로 어플을 삭제하고 다시 설치하는 방법이 있습니다. 어플의 권한 설정은 앱 설치 시에 나오기 때문에 재설치를 하게 되면 설정을 변경하는 것이 가능합니다. 참고로 안드로이드 버전이 6.0 미만인 분들은 반드시 이 방법을 통해 진행해 주셔야 합니다.

 

삭제 방법은 아주 간단합니다. 삭제하고 싶은 어플을 2초 동안 꾹 눌러 주시면 정보 창이 뜨게 되는데 여기서 [설치 삭제] 항목을 눌러 주시면 제거가 완료됩니다. 이제 Play 스토어에 들어가셔서 어플을 재설치해주신 후 접근 권한을 설정해 주시면 됩니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

안드로이드 버전 6.0 미만인 분들 중 더 편리한 두 번째 방법을 적용하고 싶은 분들은 아래 글을 참고하셔서 갤럭시 소프트웨어를 최신 버전으로 업그레이드해주시기 바랍니다.

 

 

갤럭시 핸드폰(휴대폰) 소프트웨어 자동 업데이트, 수동 다운로드 방법

 

2. 안드로이드 앱 설정 권한 변경하기

 

두 번째로 스마트폰 내에서 설정을 변경하는 방법이 있습니다. 첫 번째 방법과는 다르게 다시 설치해야 한다는 불편함이 없기 때문에 개인적으로 저도 권장드리는 방법입니다. 

 

아래는 갤럭시에서 설정할 수 있는 앱 권한 유형입니다. 참고하신 후 바꾸고 싶은 유형을 선택해 주시면 됩니다.

 

  • 마이크: 오디오를 녹음하는 기능
  • 신체 센서: 생체 신호에 관한  정보를 수집
  • 신체 활동: 걷기, 자전거 타기 등 신체적인 활동에 대한 정보를 수집
  • 위치: 기기 위치 정보를 제공
  • 저장공간: 휴대폰의 사진, 파일 등을 다운로드하는 기능
  • 전화: 전화를 걸고 관리하는 기능
  • 주소록: 연락처 목록을 볼 수 있게 하는 기능
  • 카메라: 휴대폰 카메라로 사진이나 동영상을 촬영
  • 캘린더: 기본 캘린더 사용
  • 통화 기록: 통화기록을 보고 변경하는 기능
  • SMS: SMS 메시지를 보고 전송
  • 추가 권한: 위에서 설명한 권한 외의 추가적인 권한

 

먼저 갤럭시 핸드폰에 기본적으로 설치되어 있는 [설정] 앱을 터치해 열어 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

그리고 화면을 아래쪽으로 조금 내리신 후 [개인정보 보호] 메뉴로 들어가 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

개인정보 보호 메뉴에 들어오신 분들은 가장 위쪽에 있는 [권한 관리자] 목록을 눌러 줍니다. 이곳에서 앱 접근 권한에 대한 모든 설정을 하실 수 있습니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

권한 관리자 목록에서는 안드로이드 앱에서 허용하는 장치와 기능에 대한 목록들이 쭉 있습니다. 여기서 권한을 변경하고 싶은 유형을 하나 선택해 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

다음으로 위쪽에서 선택한 권한에 해당하는 어플을 눌러 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

그러면 [이 앱의 액세스 권한]이라는 목록이 보이실 건데요. 여기서 [허용] 또는 [거부] 항목을 선택해 설정을 바꿔주시면 됩니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

특정 앱의 접근 권한을 변경하는 경우 권한 유형을 선택하는 방법은 가끔 불편할 때가 있습니다. 이런 경우 따로 유형을 확인해 주시고 변경하는 것이 편리한데요. 아래쪽의 방법을 참고하셔서 권한 유형을 확인해 주시기 바랍니다.

 

 

안드로이드 권한 설정 유형 확인하는 방법

 

특정 어플의 권한 유형은 스토어의 앱 정보에서 쉽게 확인이 가능합니다. 우선 [Play 스토어] 앱을 눌러 실행시켜 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

그리고 화면 오른쪽 위에 있는 플레이 스토어 프로필을 터치해 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

프로필 사진을 누르면 아래처럼 팝업 창이 뜨게 됩니다. 여기서 맨 위에 있는 내 앱/게임 항목을 선택해 주시기 바랍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

다음으로 상단의 목록 바에서 [설치됨] 목록을 눌러 주신 후 스크롤을 내려서 권한 유형을 확인하고 싶은 어플의 이름 부분을 터치해 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

그러면 앱의 제거 및 열기 화면으로 이동하게 되는데요. 화면을 내리시고 [앱 정보] 항목을 선택해 줍니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan

 

이제 접근 권한 안내라는 항목에서 [필수 접근 권한][선택 접근 권한]을 확인해 주시면 모든 과정이 완료됩니다. 이제 확인한 유형을 기억하셔서 갤럭시 설정을 통해 권한을 설정해 주시면 됩니다.

안드로이드 연락처 권한 - andeuloideu yeonlagcheo gwonhan
필수적-접근-권한-및-선택적-접근-권한

 

◎ 안드로이드 권한 설정 방법 정리

 

  1. [설정] 앱 터치
  2. [개인정보 보호] 메뉴 터치
  3. [권한 관리자] 목록 터치
  4. 권한 유형 선택
  5. 어플 목록 선택
  6. 액세스 권한 허용 또는 거부 설정하기

 

필수와 선택 접근 권한에 대한 내용입니다.

 

  • 필수 접근 권한: 필수적으로 허용하셔야 하는 권한으로 설정하지 않을 시 앱을 사용하지 못할 수 있습니다.
  • 선택 접근 권한; 선택적인 접근 권한으로 설정하지 않은 경우 기능 사용에 대한 제한이 생길 수 있습니다.

 

▼ 함께 읽으면 도움되는 글

 

갤럭시 최근 실행 앱 및 파인더 기능 추천 앱 삭제 방법

 

지금까지 안드로이드 앱 접근 권한 설정 및 변경하는 방법에 대해서 알아보았습니다. 설정된 권한을 변경하고 싶은 분들은 이런 식으로 어플 별로 권한 유형을 확인해 주시고 바꿔주시는 것을 권장드립니다.