본문 바로가기
Kotlin/Kotlin 팁

ANDROID 권한처리

by MonoSoft 2020. 9. 21.
728x90
반응형

ANDROID 권한처리 

 

 

신규 프로젝트를 추가후 아래와 같은 AndroidMainfest.xml 연 후에 사용할 권한을 입력한다. 이번에는 카메라다!!

 

 

 

디자인 모드에 들어가 아래와 같이 위젯을 꾸며준다.

 

 

 

 

 

************************아래 코드를 참고해서 코딩해준다*******************************************

 

package com.monosoft.myapplication

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import android.Manifest
import android.content.pm.PackageManager
import android.widget.Toast
import androidx.core.app.ActivityCompat
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

//
btnCamera.setOnClickListener() {
checkCameraPermission()
}
}

//첫번째 실행 함수
fun checkCameraPermission() {
//카메라가 사용하는 퍼미션을 변수로 정의
val cameraPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)

//승인이 되어있는지 확인 //만약 승인되지 않을때
if (cameraPermission == PackageManager.PERMISSION_DENIED) {
//카메라 권한이 승인 시 실행
startProcess()
} else {
requestPermission()
}
}

//카메라 허용 시 실행 함수
fun startProcess() {
//카메라 권한이 실행 시 다음 코드 실행
Toast.makeText(this,"카메라 사용 권한이 승인되었습니다",Toast.LENGTH_LONG).show()
}

//카메라 비 허용 시 실행 함수
val FLAG_CAMERA = 99

fun requestPermission() {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA),FLAG_CAMERA)
}

//requestPermission 실행 시 액티비티 가지고 있는 아래 함수를 호출해준다.
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

when(requestCode) {
FLAG_CAMERA -> { //카메라 승인 시
if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
startProcess()
} else {
finish()
}

}
}
}
}

728x90
반응형

댓글