기존에 사용하던 StartActivityResult -> OnActivityResult 로 동작하던 콜백 메소드가 deprecated 됨
- 기존 소스
private fun takePhoto() {
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also{intent->
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
intent.resolveActivity(activity?.packageManager!!)?.also{
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE) // OnActivityResult 실행
}
}
}
- 변경 소스
private val savePhoto = registerForActivityResult(ActivityResultContracts.TakePicture()){
Log.d("save photo", "uri : $uri")
}
private fun takePhoto() {
savePhoto.launch(uri)
}
ActivityResultContracts 참고