728x90
반응형
안녕하세요 이번 글에서는 애플리케이션을 사용하기 위해 권한을 허용하는 것을 알아보겠습니다.
카메라 권한에 대해서 허용하는 것을 해보겠습니다.
먼저 AndroidManifest.xml에서 <uses-permission> 태그를 이용하여 사용할 권한을 추가하겠습니다.
<!--카메라 권한 -->
<uses-permission android:name="android.permission.CAMERA"/>
위처럼 <uses-permission> 태그를 이용하여 사용할 권한을 추가하여 줍시다.
다음 activity_main.xml에서 간단하게 버튼 하나를 만들어 주겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="카메라"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.176" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="위험 권한"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
이제 MainActivity로 이동하여 코드를 작성하겠습니다.
package com.example.authpractice
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import kotlinx.android.synthetic.main.activity_main.*
import java.util.jar.Manifest
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
checkPermission()
}
}
fun checkPermission(){
//카메라 권한의 승인 상태 가져오기
val cameraPermission = ContextCompat.checkSelfPermission(this,android.Manifest.permission.CAMERA)
if(cameraPermission == PackageManager.PERMISSION_GRANTED){
//상태가 승인일 경우에는 코드 진행
startProcess()
}else{
//승인되지 않았다면 권한 요청 프로세스 진행
requestPermission()
}
}
private fun requestPermission() {
//ActivityCompat.requestPermissions을 사용하면 사용자에게 권한을 요청하는 팝업을 보여줍니다.
//사용자가 선택한 값은 onRequestPermissionsResult메서드를 통해서 전달되어 집니다.
ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.CAMERA),99)
}
private fun startProcess() {
Toast.makeText(this,"카메라를 싱행 합니다." ,Toast.LENGTH_SHORT).show()
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when(requestCode){
99 -> {
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
startProcess()
}else{
finish()
}
}
}
}
}
이제 앱을 실행시켜 보겠습니다.
감사합니다.
728x90
반응형
'KOTLIN' 카테고리의 다른 글
코틀린(Kotlin) 안드로이드 스튜디오 SQLite 데이터베이스 사용하기-1 (0) | 2021.01.24 |
---|---|
코틀린(Kotlin) 안드로이드 스튜디오 SharedPerferences 사용하기 (0) | 2021.01.23 |
코틀린(Kotlin) 리사이클러뷰 사용하기 (1) | 2021.01.10 |
코틀린(Kotlin) Spinner 사용하기 (0) | 2021.01.09 |
코틀린(Kotlin) intent 사용하기 - [setResult & startActivityForResult] (0) | 2021.01.09 |