묵시적 인텐트란 약속된 액션을 지정하고 액션에 필요한 데이터 값을 설정하여 안드로이드에서 제공하는 기존 응용 프로그램을 실행할 수 있는

인텐트를 말합니다.

묵시적 인텐트를 활용하여 다음 6가지의 기능을 구현해보겠습니다.


1. 지정된 번호로 전화걸기 (010-1234-5678)

2. 특정 사이트 접속 하기 (www.naver.com)

3. 구글맵을 열어서 지정 좌표의 위치 확인하기 (한빛 아카데미 건물)

4. 구글홈페이지에서 원하는 검색어 입력하기 ("안드로이드 ㅋㅋ")

5. 지정된 번호로 원하는 메시지 보내기("안녕하세요.")

6. 카메라 어플 들어가기 


우선, 전화 걸기 및, 구글 맵 사용을 위해 Manifest 폴더에 사용 권한을 추가해야합니다.

<appliciation 전에 다음 3가지 문구를 작성합니다.

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

그리고 activity_main.xml에서 버튼을 설정해주고 MainActivity.java에서 아래처럼 코딩합니다.

ACTION_DIAL, ACTION_VIEW, ACTION_SENDTO, ACTION_IMAGE_CAPTURE, ACTION_WEB_SEARCH 등 

각각의 기능을 수행하기 위한 인텐트 액션 모드가 정해져있기 때문에 이를 이용하여 동작을 실행할 수 있습니다.

package com.example.a0610;

import androidx.appcompat.app.AppCompatActivity;

import android.app.SearchManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnDial=findViewById(R.id.btnDial);
Button btnWeb=findViewById(R.id.btnWeb);
Button btnGoogle=findViewById(R.id.btnGoogle);
Button btnSearch=findViewById(R.id.btnSearch);
Button btnSms=findViewById(R.id.btnSms);
Button btnPhoto=findViewById(R.id.btnPhoto);


btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri=Uri.parse("tel:010-1234-5678");
Intent intent= new Intent(Intent.ACTION_DIAL,uri);
startActivity(intent);//이걸 실행해달라

}
});
btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri=Uri.parse("http://www.naver.com");
Intent intent= new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);//이걸 실행해달라

}
});
btnGoogle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri=Uri.parse("http://maps.google.com/maps?q="+37.559133+","+126.927824);
Intent intent= new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);//이걸 실행해달라

}
});
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"안드로이드 ㅋㅋ");
startActivity(intent);//이걸 실행해달라

}
});
btnSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(Intent.ACTION_SENDTO);
intent.putExtra("sms_body","안녕하세요.");
intent.setData(Uri.parse("smsto:"+Uri.encode("010-1234-5678")));
startActivity(intent);//이걸 실행해달라

}
});
btnPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);//이걸 실행해달라

}
});
}
}


<실행 결과>

1. 시작 화면


2. 각 버튼의 실행 화면





+ Recent posts