Intent의 종류
실습하기
Layout
Web 기능 구현
btnWeb = findViewById(R.id.btnWeb);
btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.naver.com"));
startActivity(intent);
}
});
Camera 기능 구현
btnCameara.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
}
});
Dial 기능 구현
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:01012341324"));
startActivity(intent);
}
});
Call 기능 구현
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:00000000000"));
startActivity(intent);
}
});
이렇게 할 시 동작이 되지않는다 왜냐하면 사용자의 민감한 기능이나 데이터를 사용해야 하는 경우 권한을 체크하고 요청 후 실행을 해야된다.
Call 기능 최종 구현
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:00000000000"));
if ( ActivityCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED ){
//권한 요청
ActivityCompat.requestPermissions(
MainActivity2.this,
new String[]{Manifest.permission.CALL_PHONE},
0);
return;
}
startActivity(intent);
}
});
실습하기
메인페이지
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class FirstActivity extends AppCompatActivity {
Button btn;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
btn = findViewById(R.id.btnfirst);
edt = findViewById(R.id.edtData);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String data = edt.getText().toString();
//Second로 이동 기능 구현
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//intent 객체에 전달할 데이터 저장
intent.putExtra("data",data);
startActivity(intent);
//뒤로가기 눌렀을 시 종료 시키려고
finish();
}
});
}
}
이동할 페이지
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
Button btn;
TextView tsdata;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
btn = findViewById(R.id.btnsecond);
tsdata = findViewById(R.id.tsdata);
//Intent 객체 생성
Intent intent = getIntent();
tsdata.setText(intent.getStringExtra("data"));
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SecondActivity.this,FirstActivity.class);
startActivity(intent);
}
});
}
}