티스토리 뷰

반응형

intent action을 통하여 기본으로 제공되는 앱에 접근을 할 수 있습니다.

 

https://developer.android.com/guide/components/intents-common?hl=ko

 

공통 인텐트  |  Android 개발자  |  Android Developers

An intent allows you to start an activity in another app by describing a simple action you'd like to perform (such as "view a map" or "take a picture") in an Intent object. This type of intent is called an implicit intent because…

developer.android.com

 

시작하기

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button_search.setOnClickListener {
            val uri = Uri.parse("http://google.com")
            val intent = Intent(Intent.ACTION_VIEW, uri)
            startActivity(intent)
        }

        button_map.setOnClickListener {
            val uri = Uri.parse("geo:35.159520, 126.852678")
            val intent = Intent(Intent.ACTION_VIEW, uri)
            startActivity(intent)
        }

        button_dial.setOnClickListener {
            val uri = Uri.parse("tel:010-0000-0000")
            val intent = Intent(Intent.ACTION_DIAL, uri)
            startActivity(intent)
        }
    }
}

 

구글에 접속하기, 지도 검색, 전화 입력 등을 구현해보았습니다.

 

링크에 접속할 때는 ACTION_VIEW와 Uri.parse를 사용한 링크를 intent에 넣어주면 되고,

지도를 검색할 때는 ACTION_VIEW와 Uri.parse를 사용한 경도와 위도 값을 intent에 넣어주면 됩니다.

 

전화번호를 입력할 때는 ACTION_DIAL를 통해 전화번호를 넘겨주면 됩니다.

 

 

동작은 아래와 같습니다.

 

 

 

전화 걸기 예제

 

action을 사용하여 전화를 걸어보겠습니다.

 

 

 

먼저 AndroidManifest.xml에 아래의 권한을 추가해줍니다.

<uses-permission android:name="android.permission.CALL_PHONE"/>

 

 

그리고 권한 허용을 물어보는 코드를 작성합니다.

 

private val permissionList = arrayOf(
    Manifest.permission.CALL_PHONE
)

private fun checkPermission() {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        for (permission in permissionList) {

            if (checkCallingOrSelfPermission(permission) == PackageManager.PERMISSION_DENIED) {
                requestPermissions(permissionList, 0)
            }
        }
    }
}

 

그리고 아래와 같이 ACTION_CALL를 사용하면 됩니다.

button_call.setOnClickListener {
    val uri = Uri.parse("tel:010-0000-0000")
    val intent = Intent(Intent.ACTION_CALL, uri)
    startActivity(intent)
}

 

 

동작은 아래와 같습니다.

 

반응형
댓글