Android - Button & Call ( 전화걸기 )

Android 2011.10.04 20:07


버튼 이벤트처리로 전화걸기를 해보겠습니다.
간단한 구문 하나로 처리 될 수 있는 이벤트 입니다.

앱에서 자주 찾아볼 수 있는 기능 중에 하나죠? 이제 살펴 보겠습니다.

전화걸기 기능에서 두가지로 나눌 수 있습니다.
바로 전화를 걸어주는 기능 과 다이얼로 번호만 표시해주는 기능
상황에 따라 맞는 것을 가져다 쓰시면 되겠죠?

필요한 구문을 살펴보겠습니다.

먼저 전화번호를 그냥 표시만 해주는 구문
Intent in = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(in);

그리고 전화를 바로 걸어주는 구문
Intent in = new Intent(Intent.ACTION_CALL, Uri.parse(url));
startActivity(in);


그리고 중요한 한가지 !
이제부터는 핸드폰의 기능을 사용하기 시작합니다.
애플리케이션안에서 작동될 수 있는 기능들은 상관없지만
핸드폰의 기능 즉 카메라나 인터넷 전화걸기 등등 을 사용할 때는 따로 설정해줄 것이 있습니다.

바로 AndroidManiFest.xml의 uses-permission을 설정해주는 것입니다.
설정방법은 따로 글을 써서 설명하겠습니다.

uses-permission에서 android.permission.CALL_PHONE 를 찾아서 선택하여 저장합니다.


프로젝트 생성

Project name : ExamCall
Build Target : Android 2.1
Package name : jsh.exam.call
Create Activity : main
Min SDK Version : 7


Java 소스

main.java

package jsh.exam.call;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class main extends Activity implements OnClickListener {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  Button bt1 = (Button) findViewById(R.id.button1);
  bt1.setText("바로전화걸기");
  Button bt2 = (Button) findViewById(R.id.button2);
  bt2.setText("다이얼로표시");

  bt1.setOnClickListener(this);
  bt2.setOnClickListener(this);

 }

 @Override
 public void onClick(View arg0) {
  // TODO Auto-generated method stub

  switch (arg0.getId()) {

  case R.id.button1:

   startActivity(new Intent("android.intent.action.CALL",
     Uri.parse("tel:010-0000-0000")));
   break;

  case R.id.button2:

   startActivity(new Intent("android.intent.action.DIAL",
     Uri.parse("tel:010-0000-0000")));

   break;
  }

 }
}



XML 소스

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="
http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <Button
  android:text="Button"
  android:id="@+id/button1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"></Button>
 <Button
  android:text="Button"
  android:id="@+id/button2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"></Button>
</LinearLayout>


실행 결과


하나의 버튼은 바로 전화를 걸어주고 다른 하나의 버튼은 다이얼창에 표시만 해주는 것을 알 수 있습니다.




뷰 한번 씩 클릭 해주시면 다른분들도 정보를 공유할 수 있습니다.

 

 


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

Write a comment