본문 바로가기

Android/Phone Call

안드로이드 전화걸기 예제

안드로이드에서 화번호를 입력하고 전화걸기 버튼을 누르면 전화걸기 액티비티가 실행되어 전화를 걸어주는 예

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="test.android.hello"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".PhoneCallActivity"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

 

    </application>

    <uses-sdk android:minSdkVersion="3" />

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

</manifest>


전화걸기 기능 ( 만약 다이얼이 나타나게 하려면 Intent.ACTION_DIAL 액션을 사용해야 함)

private void call(String num) {

   try {

       Intent callIntent = new Intent(Intent.ACTION_CALL);

       callIntent.setData(Uri.parse("tel:"+num));

       startActivity(callIntent);

   } catch (ActivityNotFoundException e) {

        Log.e("전화걸기", "전화걸기에 실패했습니다", e);

   }

}


PhoneCallActivity

package test.android.hello;


import android.app.Activity;


import android.app.Activity;

import android.content.*;

import android.net.Uri;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.EditText;

 

public class PhoneCallActivity extends Activity {

EditText phoneNum;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        phoneNum = (EditText) findViewById(R.id.phoneNum);

    }

 

private void call(String num) { // 01045636244 등과 같은 형식의 문자열 번호

   try {

       Intent callIntent = new Intent(Intent.ACTION_CALL);

       callIntent.setData(Uri.parse("tel:"+num));

       startActivity(callIntent);

   } catch (ActivityNotFoundException e) {

        Log.e("전화걸기", "전화걸기에 실패했습니다", e);

   }

}

public void onBtnClick(View v) {

String num = phoneNum.getText().toString();

call(num);

}

}


main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >


    <EditText

        android:id="@+id/phoneNum"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10"

        android:text="phoneNum" >

        <requestFocus />

    </EditText>


    <Button

        android:id="@+id/btnCall"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="onBtnClick"

        android:text="전화걸기" />


</LinearLayout>