안드로이드 개발 팁 #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 열기
}

지난 안드로이드 개발 팁

Sort:  

Upvoted! Thank you for supporting witness @jswit.
default.jpg

 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.17
TRX 0.16
JST 0.029
BTC 76003.11
ETH 2848.97
USDT 1.00
SBD 2.55