intent 예외처리

quinones·2024년 11월 18일

Firebase와 앱을 연동하고, crashlytics를 보는 와중 새로운 오류가 발견되었다.

오류 내용은

Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://www.youtube.com/... }

해당 부분은 클릭하면 유튜브로 이동시켜주는 부분이였다.
유튜브 앱이 있다면 앱을통해서, 없다면 웹 브라우저를 통해서 이동된다.

하지만 사용자가 유튜브 앱도 없고 웹 브라우저도 없을때 나오는 오류였다..

이런거까지 예외처리를 해줘야할까 의문이 들지만....
유튜브도 없고 웹 브라우저도 없으면 폰으로 어떤거 하시나요..? ㅋㅋㅋ

그래도 일단 예외처리를 해보자면..

val intent = Intent(Intent.ACTION_VIEW, Uri.parse(data))
if (intent.resolveActivity(requireContext().packageManager) != null) {
    startActivity(intent)
} else {
    Toast.makeText(requireContext(), R.string.no_browser, Toast.LENGTH_SHORT).show()
}

data에 필요한 링크가 있다.
바로 startActivity를 사용하지 않고 필요한 앱이 있는지 확인후 없으면 Toast메세지만 띄워준다.

profile
이우진

0개의 댓글