퍼미션 체크하는 위치가 이상해 보입니다. 작성하신 코드는 액티비티가 초기화되기 이전에 퍼미션을 체크하고 있기 때문에 context가 null이 될 수 있습니다. 퍼미션 체크하는
fun setView(){
binding.buttonCamera.setOnClickListener{
if (!hasCameraPermission()) {
//request permission
return
}
// if (cameraPermission == PackageManager.PERMISSION_DENIED){
// Log.d("my tag","권한이 필요하다고")
// } else {
//
// }
}
binding.buttonGallery.setOnClickListener{
if (!hasCameraPermission()) {
//request permission
return
}
openGallery()
}
}
fun openGallery(){
val intent = Intent(Intent.ACTION_PICK)
intent.type = MediaStore.Images.Media.CONTENT_TYPE
startActivityForResult(intent, REQ_STORAGE)
}
}
private fun hasCameraPermission(): Boolean {
return ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == Packagemanager.PERMISSION_GRANTED
}
위처럼, 코드를 퍼미션을 사용하기 직전에 호출해 보세요. 그래야 Context가 초기화 된 상태라 null이 되지 않을 것 같습니다.