반응형
안드로이드(Android) - 프로그램에서 전화걸기 |
이번 예제는 전화기 자판으로 전화를 거는 것이 아니라 안드로이드 프로그램 내에서
전화거는 방법에 대한 소스이다. 기술적으로 아주 간단하며 프로그램내에 전화걸수 있는
기능을 삽입할수 있다.
화면은 전화번호를 입력할수 있는 에디터 박스와 전화걸리 버튼으로 아주 심플하게
이루어져 있다. 최대한 기능에 대한 소스만 집어넣어 파악하기 쉽도록 하기 위함이다.
전체소스는 다음과 같다import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; public class Main extends Activity { EditText mEdtNumber = null; LinearLayout mLinearLayout = null; Button mButton_dial = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLinearLayout = new LinearLayout(this); mEdtNumber = new EditText(this); mEdtNumber.setText("010-5552-5487"); mLinearLayout.addView(mEdtNumber); mButton_dial = new Button(this); mButton_dial.setText("전화걸기"); mLinearLayout.addView(mButton_dial); // 버튼 이벤트 mButton_dial.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { performDial(); } }); setContentView(mLinearLayout); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_CALL) { performDial(); return true; } return false; } /** 전화걸기 실행 함수 */ public void performDial() { if (mEdtNumber != null) { try { startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mEdtNumber.getText()))); } catch (Exception e) { e.printStackTrace(); } } } }
여기서의 핵심은 암시적 인텐드를 시스템 디바이스에 요청하는 것이다.
startActivity 인자로 의도하는 인텐드 객체를 넘겨주면 된다startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mEdtNumber.getText())));
그림에서 전화걸기 버튼을 클릭하게 되면 바로 전화를 걸게 된다. 에뮬레이터에서 전화가
다른 인텐드 옵션인 ACTION_DIAL 은 휴대폰 다이얼패스에서 전화거는 것과 같은
프로그램을 띄워준다. 화면에서 입력한 값이 전달되어 자동으로 들어가게 되고
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + mEdtNumber.getText())));
바로 전화걸수 있는 다이얼 패드가 화면에 나타나게 된다.
인텐드 명령의 종류에 따라 여러가지를 수행하게 되는데 음악, 동영상을 실행한다던지 구글맵을
다운받는 등의 일을 알아서 수행하게 된다. 구글에서 제공하는 암시적 인텐드의 종류는 다음과
같다.상세한 내용은 다음 URL 에서 확인해볼수 있다.
http://developer.android.com/guide/appendix/g-app-intents.html
표에서 정리된 예제는 하나씩 구현해 나갈 생각이다반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드 가로, 세로 모드 막기 (2) | 2010.10.17 |
---|---|
안드로이드 어플 화면 캡쳐하기 (0) | 2010.10.15 |
안드로이드 단말기와 이클립스 연결 (6) | 2010.09.13 |
모바일 웹의 폭발적 증가 에 대한 생각 (0) | 2010.09.07 |
화면의 Touch Event 정보와 Message 구현 (1) | 2010.08.31 |
안드로이드 개발을 위한 환경설정과 프로젝트 생성 (10) | 2010.08.31 |
안드로이드(Android)에서 설치한 프로그램 삭제하기 (0) | 2010.08.31 |
안드로이드(Android) 기본 프로젝트 생성 (0) | 2010.08.31 |