NOW OR NEVER

[Android] 권한 본문

Android

[Android] 권한

LAURA 2023. 6. 15. 17:52
반응형

권한

  • 개인정보 관련된 거는 권한이 비활성화 되어 있다. 사용자에게 권한을 요청해서 받아야 할 수 있고 해당 권한이 활성화되어 있는 지 확인하고 사용해야 한다.
  • manifests- AndroidManifest.xml 파일에 권한 등록 해놓기(application 밑에 작성)
  • 앱 설정에서 권한은 사용자에게 허락을 받아야 되는 권한 종류가 나온다. 사용자가 권한을 비활성화 시킬 수도 있는 것들이기 때문에 이에 대해 권한을 허용하도록 유도하기 위한 대책이 필요하다.

허용 권한 작성 법

  • import android.Manifest 패키지

  • 허용 받을 권한과 허용받지 않을 권한을 구분하지 말고 manifests- AndroidManifest.xml 파일에 등록해놓은 권한(확인하고자 할 권한) 다 mainActivity 클래스 안(onCreate 밖)에 배열로 지정해놓기

              // 확인 받을 권한 목록
               val permissionList = arrayOf(
                Manifest.permission.INTERNET,
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION,
                Manifest.permission.READ_CONTACTS,
                Manifest.permission.WRITE_CONTACTS,
                Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE
              )

종류

  • 네트워크 <uses-permission android:name="android.permission.INTERNET"/>
  • 위치
    • <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    • <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  • 연락처
    • <uses-permission android:name="android.permission.READ_CONTACTS"/>
    • <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
  • 메모리
    • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

메서드

  • requestPermissions(권한확인리스트, 0)

    • 권한 목록 중 이미 허용되어 있거나 불필요한 허용 빼고 허용이 안되어 있는 것들만 권한 확인 요청하는 메서드

    • 매개변수 0은 request code 이다.

    • 허용 완료 후 다시 권한 요청 뜨지 않는다.

    • 실행하자마자 권한 요청하는 것이 좋다. 허용 안됐으면 또 물어보는 메세지 띄우고 강제로 뒷 화면으로 옮기는 게 좋다.

    • 화면을 바뀔 때마다 권한 요청하는 것은 사용자 입장에서 좋지 않다.(너무 많이 물어보면😂)

    • 해당 권한을 써야하는 화면에서 물어보고 권한을 허용하지 않는다면 권한 허용해야 이용 가능 하다는 메세지를 띄운다.

    • onRequestPermissionsResult

      • 매개변수 : permissions(권한 이름들), grantResults(허용 여부들)
      • requestPermission 메서드를 통해 권한을 요청하여 요청 작업이 끝나면 호출되는 메서드
      • 사용자로 하여금 권한에 대한 허용 여부를 확인 받은 다음 각 권한들에 대한 허용이나 거부에 따라 뭔가를 처리해주는 작업이 필요할 때 분기 처리해서 사용
      • 권한 확인 다음 작업이 필요없다면 사용하지 않아도 된다.
      • 오버라이딩 해서 사용
      • 사진 사용 허용 권한 받을 시 앨범에 있는 사진들을 가져와 썸네일리스트로 보여주기 우
      • 사용자가 허용이나 거부버튼을 언제 누를 지 모르니까 다 누르고 나면 안드로이드 메서드가 그것을 다 확인하고 자동으로 호출

etc

  • 위치 권한 위한 것들은 onCreate 안에 작성 : ActivityResultContracts.RequestMultiplePermissions(), LocationPermissionCallback(), locationLauncher = registerForActivityResult(r1, callback1)
  • adapter.notifyDataSetChanged() : 갱신시켜주는 메서드

'Android' 카테고리의 다른 글

[Android] Parcelable  (0) 2023.06.19
[Android] Menu & Activity  (0) 2023.06.16
[Android] View3 - Adapter  (0) 2023.06.14
[Android] UI 요소 - View 2  (0) 2023.06.14
[Android] Compound Component  (0) 2023.06.12
Comments