본문 바로가기
Java/AndroidStudio

Android - Intent 함수

by 하니__ 2024. 6. 11.

 

이런 버튼이 있다고 가정하고 onClick 이벤트로

버튼을 눌렀을때 

실행 가능한 함수들을 몇가지 만들어보자

 

 

 

 

전화번호부 실행시키기
void selectContact(){
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    startActivity(intent);
}

이런 함수를 만들어준 뒤

 

아래와 같은 버튼 온 클릭 이벤트를 만들어주어 실행하면

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        selectContact();
    }
});

테스트 모델에 저장되어있는 번호가 없어서 연락처가 뜨진않았지만

연락처 어플은 실행되었다

 

 

 

웹페이지 실행시키기
void openWebPage(String url){
        Uri uri = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW,uri);
        startActivity(intent);
    }

위와 같이 함수를 작성후

아래와 같이 호출을 해주면

 

(파라미터에 띄우고 싶은 URL을 적어주자)

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       openWebPage("http://www.naver.com");
    }
});

 

 

 

문자메세지 어플 실행시키기
void composeSMS(String phone){
        Uri uri = Uri.parse("smsto:"+phone);
        Intent intent = new Intent(Intent.ACTION_VIEW,uri);
        startActivity(intent);
    }

위와같이 함수를 만들어준뒤

아래와 같이 함수를 호출해주자

 

phone이라고 적혀있는곳에 번호를 적으면

알아서 그 번호로 문자를 보내려고 보내는곳이 적혀져서

문자 어플이 실행된다

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        composeSMS(String "010-1234-5678");
    }
});

 

 

 

Email 어플 실행시키기
void composeEmail(String[] address, String subject){
    Uri uri = Uri.parse("mailto:");
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(uri);
    intent.putExtra(Intent.EXTRA_EMAIL, address);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    startActivity(intent);
}

위와같이 함수를 작성후

아래와같이 호출을 해주자

 

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        composeEmail(new String[]{"abc@naver.com"},"테스트메일");
    }
});


파라미터에는

첫번째 파라미터 new String[]{}으로 해서 { } 안에 메일 주소를 넣고

두번째 파라미터에 제목을 적어주면

알아서 보내려는 메일주소와 제목을 적힌채로 이메일 어플이 실행 되지만

 

구글 계정이 설정되어있지않은 테스트모델이라

어플만 실행되었다

 

 

 

공유버튼 눌렀을때 문자열 복사하여 해당어플에 자동으로 붙여넣기
void shareText(String text){
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_TEXT, text);
        intent.setType("text/plain");
        Intent shareIntent = Intent.createChooser(intent, "선택하세요");
        startActivity(intent);
    }

위와 같이 함수를 적어준 뒤

아래와 같이 호출하게되면

 

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        shareText("완전 럭키비키잖앙");
    }
});

 

먼저 공유 할 어플들을 선택하게 한 후

어플이 켜지면 복사하려는 문자열이 복사되어

바로 붙여넣기가 되게 된다

 

 

 

 

 

 

그림을 클릭했을때 공유
void shareImage(Uri imageUri){
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_STREAM, imageUri);
        intent.setType("image/*");
        Intent shareIntent = Intent.createChooser(intent, "이미지 선택하세요");
        startActivity(shareIntent);
    }

 

위와같이 함수를 작성하고

 

아래와같이 호출

 

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String imageUrl = "https://i.namu.wiki/i/CmwNLKlcrBKlFauDZnCP-r0LcyGKpavSo5et3pReLWd1Bqpx3cU_u9K8bINQf0HjVtYygRsQb8z057cmbt92WVrd3Fm4i4LBG-gvL7FQSBh-IEcRaF_-dL_gpkPbLP2tTDvhzVg87yVmSLdZrNaCfw.webp";
        Uri imageUri = Uri.parse(imageUrl);
        shareImage(imageUri);
    }
});

지금은 예제라서

URL을 적어주었지만

실전에서는 getAdapterPosition()를 이용하여

이미지의 URL를 가져오도록 하자