반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] 권한 본문
반응형
권한
- 개인정보 관련된 거는 권한이 비활성화 되어 있다. 사용자에게 권한을 요청해서 받아야 할 수 있고 해당 권한이 활성화되어 있는 지 확인하고 사용해야 한다.
- 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 |