장치에서 제한하는 기능을 사용하기 위해선 해당 권한을 선언해야 하고, 중요한 권한에 대해서는 사용자에게 요청을 해서 권한을 받아야 사용할 수 있다.
권한은 manifests 에 선언한다.
네트워크 권한
// app에서 네트워크를 사용하려면 메니페스트에 다음 두 줄을 추가한다. <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
위치기반(GPS) 권한
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
블루투스 권한
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
외부 저장소 권한
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
권한 요청 및 결과 처리
activity에서 필요한 권한을 요청하고, 결과를 받아서 결과에 따른 작업을 처리한다.
//권한 요청 ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE) const val PERMISSION_REQUEST_CODE = 1000 val PERMISSIONS = arrayOf( android.Manifest.permission.ACCESS_FINE_LOCATION ,android.Manifest.permission.ACCESS_COARSE_LOCATION ) //권한 요청 결과 처리 override fun onRequestPermissionsResult( requestCode: Int, permissions: Array<out String>, grantResults: IntArray ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) when(requestCode) { PERMISSION_REQUEST_CODE -> { todoFunction() } } }
Uploaded by Notion2Tistory v1.1.0