이 튜토리얼에서는 안드로이드 앱에서 버튼을 누르면 지정한 전화번호가 미리 입력된 상태로 기본 다이얼러 화면이 열리도록 구현하는 방법을 단계별로 알아봅니다. 실제 발신 전에 번호를 확인할 수 있어 사용자 경험 측면에서도 유용하게 활용되는 패턴입니다.
1단계 — 새 프로젝트 생성
Android Studio를 실행하고 메뉴에서 File ⇒ New Project를 선택한 뒤, 새 프로젝트 생성에 필요한 정보를 모두 입력하여 프로젝트를 만듭니다.
2단계 — 레이아웃 파일(activity_main.xml) 작성
res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 화면 중앙에는 다이얼러를 호출하는 버튼이 배치됩니다.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp" tools:context=".MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginTop="40dp" android:onClick="ShowDialer" android:text="Show Number Dialer" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:autoLink="phone" android:linksClickable="true" /> </RelativeLayout>
3단계 — MainActivity.java 작성
src/MainActivity.java 파일에 아래 코드를 추가합니다.
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ShowDialer(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
}
}
여기서 핵심은 Intent.ACTION_DIAL입니다. 이 인텐트에 tel: 스킴으로 전화번호 데이터를 담아 startActivity()를 호출하면, 해당 번호가 입력된 상태로 시스템 기본 다이얼러가 실행됩니다. 참고로 ACTION_DIAL은 실제로 전화를 걸지 않고 다이얼 화면만 열어주기 때문에 별도의 위험 권한 없이도 정상적으로 동작합니다. 반면 직접 발신까지 처리하는 ACTION_CALL을 사용하려면 CALL_PHONE 권한이 반드시 필요합니다.
4단계 — AndroidManifest.xml 설정
androidManifest.xml 파일에 아래 코드를 추가합니다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> <uses-permission android:name="android.permission.CALL_PHONE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
앱 실행 및 결과 확인
이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의
Run 아이콘을 클릭하세요. 기기 목록에서 본인의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 나타납니다.

화면 가운데 있는 Show Number Dialer 버튼을 탭하면, 코드에 지정한 번호(0123456789)가 이미 입력된 상태로 다이얼러가 열리는 것을 확인할 수 있습니다. 이후 사용자가 직접 통화 버튼을 누르기 전까지 실제 발신은 일어나지 않으므로 안전하게 테스트할 수 있습니다.