ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android 실습 (4)
    Android 2022. 7. 12. 17:18

    1) 사진 촬영과 전화 연결이 가능하도록 만들어보겠습니다.

    package com.example.ex_0712;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    import androidx.core.content.ContextCompat;
    
    import android.Manifest;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    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 {
    
        Button btn_web, btn_camera, btn_dial, btn_call;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn_web = findViewById(R.id.btn_web);
            btn_camera = findViewById(R.id.btn_camera);
            btn_dial = findViewById(R.id.btn_dial);
            btn_call = findViewById(R.id.btn_call);
    
            btn_web.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    // 웹으로 이동하기 위한 주소 지정!
                    Uri uri = Uri.parse("https://www.naver.com");
    
                    // Intent 객체 생성!
                    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    
                    // 지정한 Intent를 실행하기 위한 명령
                    startActivity(intent);
    
                }
            });
    
            btn_camera.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    
                    startActivity(intent);
                }
            });
    
            btn_dial.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    Uri uri = Uri.parse("tel:010-1234-0000");
    
                    Intent intent = new Intent(Intent.ACTION_DIAL, uri);
    
                    startActivity(intent);
                }
            });
    
            btn_call.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    // Uri uri = Uri.parse("tel:010-1234-1234");
    
                    // call 기능은 권한을 가지고 있어야만 Intent를 통해 사용할 수 있다!
                    // 관련된 권한은 어플자체에 지정을 해야 하므로 AndroidManifest파일에 권한 지정하기
                    Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:010-1234-1234"));
    
                    // call에 대한 권한을 받은적이 있는지 없는지 판단하에
                    // 받은적이 없다면 직접 권한 받아오기!
                    if (ContextCompat.checkSelfPermission(MainActivity.this,
                            Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){
                        // 권한 요청하기
                        ActivityCompat.requestPermissions(MainActivity.this,
                                new String[]{Manifest.permission.CALL_PHONE},0);
                    }
    
                    startActivity(intent);
                }
            });
    
    
        }
    }

     

     

    2) MainActivity에서 입력한 내용이 NextActivity에 뜨도록 해보겠습니다.

    package com.example.ex_0712;
    
    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 MainActivity2 extends AppCompatActivity {
    
        Button btn_next;
        EditText edt_data;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    
            btn_next  = findViewById(R.id.btn_next);
            edt_data = findViewById(R.id.edt_data);
    
            // btn_next 클릭시 NextActivity로 이동하기!
            btn_next.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    // 입력된 데이터 가져오기!
                    String data = edt_data.getText().toString();
    
                    // 단방향의 Intent 생성하기
                    // Intent(현재 Activity의 정보, 넘어갈 Activity 정보)
                    Intent intent = new Intent(MainActivity2.this, NextActivity2.class);
    
                    // Intent에 포함할 데이터 지정하기
                    // 일종의 태그값에 원하는 값을 담아서 전달
                    intent.putExtra("data",data);
    
                    // Intent 실행명령
                    startActivity(intent);
    
                    // 현재 띄워져 있는 화면을 종료하는 메소드
                    finish();
                }
            });
    
        }
    }

     

    package com.example.ex_0712;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class NextActivity2 extends AppCompatActivity {
    
        TextView txt_data;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_next2);
    
            txt_data = findViewById(R.id.txt_data);
    
            // 저장되어 넘어온 Intent에 접근하기!
            Intent intent2 =getIntent();
            String data = intent2.getStringExtra("data");
    
            // 한줄로 intent 내용 가져오는 방법!
            // String data = getIntent().getStringExtra("data");
    
            txt_data.setText(data);
        }
    }

     

    'Android' 카테고리의 다른 글

    Android 이론 (3)  (0) 2022.07.13
    Android 실습 (5)  (0) 2022.07.13
    Android 실습 (3)  (0) 2022.07.12
    Android 이론 (2)  (0) 2022.07.07
    Android 실습 (2)  (0) 2022.07.07

    댓글

Designed by Tistory.