728x90
카메라를 이용해봅시다!
각각
카메라 권한을 얻기 위한 구문(android developer)이랑
카메라 앱을 이용하기 위한 구문(android developer)을 Manifest에 추가해줍시다.
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera"
android:required="true" />
그리고 UI에 카메라 앱을 실행해줄 버튼을 하나 만들어줍시다.
버튼을 누르면 카메라를 이용할 수 있는 권한이 앱에 있는지 확인을 해주고,
권한이 없다면 권한을 얻어 카메라 앱을 사용하도록 해줍시다.
MainActivity.kt
package com.example.myapplication
import android.content.Intent
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
camera_on_btn.setOnClickListener {
val cameraPermissionCheck = ContextCompat.checkSelfPermission(
this@MainActivity,
android.Manifest.permission.CAMERA
)
if (cameraPermissionCheck != PackageManager.PERMISSION_GRANTED) { // 권한이 없는 경우
ActivityCompat.requestPermissions(
this,
arrayOf(android.Manifest.permission.CAMERA),
1000
)
} else { //권한이 있는 경우
val REQUEST_IMAGE_CAPTURE = 1
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
takePictureIntent.resolveActivity(packageManager)?.also {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
}
}
}
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == 1000) {
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) { //거부
Toast.makeText(this@MainActivity, "거부당했쪙ㅠㅠ", Toast.LENGTH_SHORT).show()
}
}
}
}
728x90
'안드로이드' 카테고리의 다른 글
[android][kotlin] 달력, 시계, 타이머 사용하기 (0) | 2021.05.10 |
---|---|
[android] appbar color바꾸기 (toolbar 이용하기) (0) | 2021.03.07 |
[android][kotlin] Json과 RecyclerView (0) | 2021.02.17 |
[android][xml] TabLayout bottom에 위치시키기 (0) | 2021.02.07 |
[android] [xml] 버튼 둥글게 만들기 (corner에 radius 주기) (0) | 2021.01.27 |
댓글