본문 바로가기
Kotlin

[Kotlin/코틀린] Android Intent 사용법3 / 암시적 인텐트로 안드로이드 기본앱 사용하기 (전화앱, 문자앱, 인터넷앱, 플레이스토어)

by IGBR 2022. 3. 7.

지난 포스팅엔 Intent를 사용하여 다른 액티비티에 데이터를 전달하는 방법을 정리하였습니다.

https://no1msh1217.tistory.com/14

 

[Kotlin/코틀린] Android Intent 사용법2 / 다른 액티비티에 데이터 전달하기

지난 포스팅엔 Intent를 사용하여 화면 전환과 더불어 액티비티 스택 관리에 대해서 정리하였습니다. https://no1msh1217.tistory.com/13 [Kotlin/코틀린] Android Intent 사용법1 / 다른 액티비티로 이동하기 한..

no1msh1217.tistory.com

이번에는 암시적 Intent를 사용하여 다른 안드로이드 기본앱으로 이동하거나 데이터를 전달하는 방법에 대해서 정리해보겠습니다.


A Activity -> 전화 앱으로 이동 및 데이터 전달하기

- 전화 앱으로 이동함과 동시에 번호까지 미리 입력받아 가져가기

1. 기본사용법

        버튼.setOnClickListener {

            val 폰번호 = 폰번호입력하는에딧텍스트.text.toString()
            val 유알아이이름 = Uri.parse("tel:${폰번호}")
            val 인텐트이름 = Intent(Intent.ACTION_DIAL , 유알아이이름)
            startActivity(인텐트이름)

        }

2. 사용해보기

- EditText에 번호를 입력 받고 우리가 현재 설정되어 있는 기본 통화 앱( 이건 안드로이드 스마트폰 유저가 설정해 놓은 전화 앱으로 갑니다. ex) T전화, 삼성기본앱전화 등등)으로 이동함과 동시에 번호도 같이 가져갑니다.

 

        btnDial.setOnClickListener {

            val inputStr = edtPhoneNum.text.toString()
            val myUri = Uri.parse("tel:${inputStr}")
            val dialIntent = Intent(Intent.ACTION_DIAL , myUri)
            startActivity(dialIntent)

        }

3. 실제 화면


A Activity -> 문자 앱으로 이동 및 데이터 전달하기

- 문자 앱으로 이동함과 동시에 전송할 번호와 내용까지 미리 입력받아 가져가기

1. 기본사용법

        버튼.setOnClickListener {

            val 폰번호를받을변수 = 폰번호입력받는에딧텍스트.text.toString()
            val 유알아이이름 = Uri.parse("smsto:${폰번호를받을변수}")
            val 인텐트이름 = Intent(Intent.ACTION_SENDTO , 유알아이이름)
            인텐트이름.putExtra("sms_body" , "전달할문자내용")
            startActivity(인텐트이름)
        }

2. 사용해보기

- EditText에 번호를 입력 받고 우리가 현재 설정되어 있는 기본 문자 앱으로 이동함과 동시에 번호와 문자 내용도 같이 가져갑니다.

 

        btnSendTo.setOnClickListener {

            val inputStr = edtPhoneNum.text.toString()
            val myUri = Uri.parse("smsto:${inputStr}")
            val sendToIntent = Intent(Intent.ACTION_SENDTO , myUri)
            sendToIntent.putExtra("sms_body" , "안녕하세요.")
            startActivity(sendToIntent)
        }

3. 실제 화면


A Activity -> 인터넷 앱으로 이동 및 데이터 전달하기

- 인터넷 앱으로 이동함과 동시에 어디 url로 접속 할껀지 미리 입력받아 가져가기

1. 기본사용법

        버튼.setOnClickListener {

            val 유알아이이름 = Uri.parse("들어가고싶은주소")
            val 인텐트이름 = Intent(Intent.ACTION_VIEW , 유알아이이름)
            startActivity(인텐트이름)
        }

2. 사용해보기

- 버튼이 눌리면 기본 설정된 인터넷 앱으로 네이버 모바일 웹으로 접속합니다.

        btnView.setOnClickListener {

            val myUri = Uri.parse("http://m.naver.com")
            val viewIntent = Intent(Intent.ACTION_VIEW , myUri)
            startActivity(viewIntent)
        }

3. 실제 화면

 


A Activity -> 플레이스토어 앱으로 이동 및 데이터 전달하기

- 플레이스토어 앱으로 이동함과 동시에 어떤앱으로 이동할건지 미리 입력받아 가져가기

1. 기본사용법

        버튼.setOnClickListener {

            val 유알아이이름 = Uri.parse("마켓주소")
            val 인텐트이름 = Intent(Intent.ACTION_VIEW , 유알아이이름)
            startActivity(인텐트이름)
        }

 

1-1. 원하는 앱 마켓주소 구하기

- 구글에 마켓주소를 얻길 원하는 앱을 검색합니다.

 

- 플레이스토어 링크로 들어가줍니다.

 

주소창에 잘보시면 play.google.com/store/apps/details?id=com.kakao.talk&hl=ko&gl=US

 

details?id=com.kakao.talk 이 부분이 우리가 필요한 부분이 됩니다. 

 

Uri.parse("market://details?id=com.kakao.talk") 이렇게 기입해주시면 됩니다.


2. 사용해보기

- 버튼을 누르면 플레이스토어 앱으로 미리 설정해둔 앱링크로 들어가줍니다. 

- 주로 앱 업데이트를 요청 할 때 사용됩니다.

        btnViewPlayStore.setOnClickListener {

            val myUri = Uri.parse("market://details?id=com.kakao.talk")
            val myIntent = Intent(Intent.ACTION_VIEW , myUri)
            startActivity(myIntent)
        }

3. 실제 화면


세줄 요약

1. 암시적 인텐트로 전화 , 문자 , 인터넷 , 플레이스토어 등 여러가지 사용자가 기본설정한 앱으로 이동 할 수 있다.

2. Intent.ACTION_??? 아주 다양한 액티비티 액션이 많기 때문에 필요한거는 때마다 검색하여 사용하면 된다.

 - 참고 : https://developer.android.com/reference/android/content/Intent#constants_1 

 

Intent  |  Android Developers

android.net.wifi.hotspot2.omadm

developer.android.com

3. 외워서 사용하는거 보단 이런 기능을 활용 할 수 있단 사실을 기억하고 필요할 때 찾아서 다시 사용하자. 

댓글