안드로이드 개발 팁 #7 - 다이얼 화면 연결하기 위해 Activity 클래스의 확장 메소드 작성
지난 포스트에서 웹 브라우저를 여는 코드를 Activity 클래스의 확장 메소드로 작성하는 방법을 보여 드렸습니다. 마찬가지로 특정 번호로 통화하기 위해 다이얼러 화면도 연결할 수 있습니다.
다이얼 화면 연결 코드
전화번호 1234-5678을 담은 다이얼 화면을 열고 싶으면, 아래와 같이 코드를 작성하면 됩니다.
// 가정: 액티비티 클래스 안에서 이 코드 실행
val phoneNumber = "1234-5678"
val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:${phoneNumber}"))
startActivity(intent)
이것 또한 확장 메소드로 정의하여 편리하게 사용할 수 있습니다.
다이얼 화면 연결하기 위한 Activity 클래스의 확장 메소드 정의
저번 포스트와 동일한 방식으로 코드를 작성하였습니다.
fun Activity.openDial(phoneNumber: String, exceptionHandler: (ex: ActivityNotFoundException) -> Unit = {}) {
try {
val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:${phoneNumber}"))
startActivity(intent)
}
catch (e: ActivityNotFoundException) {
e.printStackTrace()
exceptionHandler(e)
}
}
위 메소드 정의 후 액티비티 클래스 안에서 다음과 같이 편리하게 사용하면 됩니다.
openDial("1234-5678")
가능성은 낮겠지만, 다이얼 앱이 없는 기기에서는 ActivityNotFoundException 예외가 발생하죠. 이를 처리하는 람다식을 정의하여 openDial 메소드의 2번째 파라메터로 지정할 수 있습니다.
openDial("1234-5678") {
// 예: 다이얼 앱이 없어서 실행할 수 없음을 알리는 AlertDialog 열기
}
Upvoted! Thank you for supporting witness @jswit.
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.