iOS를 사랑하는 AOS 개발자

[Android/Kotlin] 안드로이드 앱 내에서 전화걸기 본문

Android ( Kotlin )/개발

[Android/Kotlin] 안드로이드 앱 내에서 전화걸기

아사안개 2022. 11. 20. 17:02
반응형
SMALL

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 

 

안녕하세요! 🙋🏻‍♀️

앱 내에서 번호를 입력 후 전화를 거는 기능을 해볼거에요!

JAVA 버전이 궁금하다면?

2021.12.17 - [Android ( JAVA )/개발] - [Android] 안드로이드 앱 내에서 전화걸기

 

[Android] 안드로이드 앱 내에서 전화걸기

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 🌟 스샷은 아이폰 💥 개발은 안드로이드 👈🏻 이렇게 뜨는거 할꺼에요 전화를 걸고 다이얼을 여는건 AndroidM

devziner.tistory.com

 

View 그리기 전 권한을 추가해줘야합니다

AndroidManifest.xml 에 추가해줍니다.

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

 

권한을 추가해주었다면 이제 View 를 그리러 갑니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:padding="20dp">

    <EditText
        android:id="@+id/et_num"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="번호를 입력하세요. (' - ' 생략, 숫자만)"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <Button
            android:id="@+id/btn_call"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="전화 바로 걸기"
            android:layout_marginRight="10dp"
            />
        <Button
            android:id="@+id/btn_dial"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="다이얼로 가기"
            android:layout_marginLeft="10dp"
            />
    </LinearLayout>

</LinearLayout>

 

Java 버전과 동일하게 작성해주었습니다 😉

반응형

이제 코드로 가봅시다

package com.ioad.blog_call

import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {

    lateinit var etNum: EditText
    lateinit var btnCall: Button
    lateinit var btnDial: Button
    val CALL_REQUEST_CODE = 1;
    var telNum: String = ""

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

        etNum = findViewById(R.id.et_num)
        btnCall = findViewById(R.id.btn_call)
        btnDial = findViewById(R.id.btn_dial)

        btnCall.setOnClickListener {
            telNum = etNum.text.toString()
            if (ContextCompat.checkSelfPermission(
                    this,
                    Manifest.permission.CALL_PHONE
                ) != PackageManager.PERMISSION_GRANTED
            ) {
                ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CALL_PHONE), CALL_REQUEST_CODE);
            } else {
                var intent = Intent(Intent.ACTION_CALL)
                intent.data = Uri.parse("tel:" + telNum)
                startActivity(intent)
            }
        }

        btnDial.setOnClickListener {
            telNum = etNum.text.toString()
            var intent = Intent(Intent.ACTION_DIAL)
            intent.data = Uri.parse("tel:" + telNum)
            startActivity(intent)
        }


    }
}

 

 

틀린부분이 있거나, 궁금하신게 있거나, 그냥 아무말이나 하고싶으면 댓글 남겨주세요 🥴

봐주셔서 감사합니다 🥰

반응형
LIST
Comments