Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코루틴 공식문서
- 코루틴
- Android Compose Navigation
- BOJ
- Sticky Header RecyclerView
- Kotlin Serialization
- hilt
- Thread vs Coroutine
- 백준 2615
- Android Compose
- android orbit
- Coroutine
- Hilt 에러
- android compose orbit
- power menu
- 백준
- 안드로이드 무한 스크롤
- viewmodel
- 스레드 vs 코루틴
- 힐트
- RecyclerView Sticky Header
- power menu 라이브러리
- Android Custom View
- 코루틴 공식 문서
- 안드로이드 컴포즈
- 안드로이드 커스텀 뷰
- runCatching
- AAC ViewModel
- Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException
- 코틀린 에러 핸들링
Archives
- Today
- Total
Beeeam
앱 내부에서 카메라 실행시키기 본문
졸작하는데 카메라를 연동 해야하는 작업이 생겨서 카메라를 연동하는 작업을 해봤다.
먼저 카메라를 사용하려면 카메라 권한부터 설정 해야한다.
AndroidManifest.xml
<!-- 카메라 권한 설정-->
<uses-permission android:name="android.permission.CAMERA"/>
<!-- 저장소 권한 설정-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature
android:name="android.hardware.camera2"
android:required="true"/>
메니페스트에 위의 코드를 추가하여 카메라와 저장소 권한을 설정한다.
const val REQUEST_IMAGE_IMAGE_CAPTURE = 1
...
// 카메라 실행
private fun openCamera() {
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
try {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_IMAGE_CAPTURE)
} catch (e: ActivityNotFoundException) {
Toast.makeText(context, "카메라 왜 안됌??", Toast.LENGTH_SHORT).show()
}
}
인텐트를 사용하여 카메라 동작하게 한다. 그리고 try catch를 사용하여 다른 모든 예외를 처리한다.
근데 이렇게만 실행 시켰을 땐 오류가 생길 수 있다. (이거 때문에 몇 시간 동안 구글링 함;;)
이럴 땐 카메라 권한을 사용자에게 받으면 해결된다.
// 카메라 권한이 있는지 확인하고, 없으면 권한 요청
private fun checkCameraPermission() {
// 카메라 권한이 있는지 확인
if (context?.let { ContextCompat.checkSelfPermission(it, Manifest.permission.CAMERA) }
!= PackageManager.PERMISSION_GRANTED) {
// 권한이 없으면 권한 요청
ActivityCompat.requestPermissions(context as Activity,
arrayOf(Manifest.permission.CAMERA),
REQUEST_CAMERA_PERMISSION)
}
else {
// 권한이 있으면 카메라 실행
openCamera()
}
}
위의 코드를 추가하고 실행하면 밑과 같은 창이 뜨면서 사용자에게 권한을 받는다.
여기서 허용을 누르면 카메라 권한이 허용이 되고 앱 내부에서 카메라를 동작 시킬 수 있다.
'Android' 카테고리의 다른 글
Splash screen api (0) | 2023.06.01 |
---|---|
Custom View (2) | 2023.05.13 |
안드로이드 스튜디오 타이틀 바 제거하기 (0) | 2023.04.14 |
Hilt? (0) | 2023.04.11 |
의존성과 의존성 주입(DI) + Hilt란? (0) | 2023.04.07 |