공유하기


이미지를 캡쳐해서 저장한 후 공유하기를 통해 이미지를 공유하고 싶었다.

이 공유하기 기능을 사용하면 카톡 페북 미투데이 등등 메뉴가 저절로 나온다.신기방기


                         Intent intentSend  = new Intent(Intent.ACTION_SEND);

 intentSend.setType("image/*");

 intentSend.putExtra(Intent.EXTRA_STREAM, Uri.parse(파일경로));

 startActivity(Intent.createChooser(intentSend, "공유"));

특정파일을 공유하기 위해 다음과 같이 사용했다.

공유하기 버튼을 만들어 그 안에 집어넣었다.

Intent it3=getIntent(); //파일명을 가져오기 위한 인텐트(에디트텍스트에서 이름입력받은 걸 파일명으로 쓰기 위해)

String str_name=it3.getStringExtra("it3_name"); //이름을 가져온다.

File fileRoute = null;

fileRoute = Environment.getExternalStorageDirectory(); //sdcard 파일경로 선언

        File files = new File(fileRoute,"/temp/"+str_name+"-.jpeg"); //temp폴더에 이름으로 저장된 jpeg파일 경로 선언

    

if(files.exists()==true)  //파일유무확인

{

Intent intentSend  = new Intent(Intent.ACTION_SEND);

intentSend.setType("image/*");


//이름으로 저장된 파일의 경로를 넣어서 공유하기

intentSend.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileRoute+"/temp/"+str_name+"-.jpeg"));


startActivity(Intent.createChooser(intentSend, "공유")); //공유하기 창 띄우기

}else{

//파일이 없다면 저장을 해달라는 토스트메세지를 띄운다.

Toast.makeText(getApplicationContext(), "저장을 먼저 해주세요", Toast.LENGTH_LONG).show();

}


소스양식버전


Intent it3=getIntent();	//파일명을 가져오기 위한 인텐트(에디트텍스트에서 이름입력받은 걸 파일명으로 쓰기 위해)

	String str_name=it3.getStringExtra("it3_name");	//이름을 가져온다.	

	File fileRoute = null;

	fileRoute = Environment.getExternalStorageDirectory(); //sdcard 파일경로 선언

			

        File files = new File(fileRoute,"/temp/"+str_name+"-.jpeg"); //temp폴더에 이름으로 저장된 jpeg파일 경로 선언

		     

	 if(files.exists()==true)  //파일유무확인

	 {

			 Intent intentSend  = new Intent(Intent.ACTION_SEND);

			 intentSend.setType("image/*");



//이름으로 저장된 파일의 경로를 넣어서 공유하기

			 intentSend.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileRoute+"/temp/"+str_name+"-.jpeg"));



			 startActivity(Intent.createChooser(intentSend, "공유")); //공유하기 창 띄우기

		 }else{

//파일이 없다면 저장을 해달라는 토스트메세지를 띄운다.

			 Toast.makeText(getApplicationContext(), "저장을 먼저 해주세요", Toast.LENGTH_LONG).show();

		 }





  1. 초보 2014.03.18 11:37 신고

    안녕하세요 유용한 팁 잘 보았습니다 그런데 리스트를 띄우지 않고 바로 카카오톡이나 페이스북으로 공유를 보낼 수 있는 방법이 있을까요?

    • yonoo88 2014.03.18 21:48 신고

      음 그 부분은 저도 한번 살펴봐야겠네요..

    • 초보 2014.03.19 15:38 신고

      방법을 찾으신다면 댓글로 간략하게라도 답변을 부탁드립니다 ㅠㅠ아니면 리스트중에 카카오톡/페이스북 같이 지정된 앱만 출력하는 방법은 있을까요?

    • yonoo88 2014.03.19 16:12 신고

      http://www.kakao.com/services/api/kakao_link

      여기 한번 보시면 될려나요

      사용예로

      // KakaoTalk으로 바로 보내시려면 아래 코드를 추가합니다.
      intent.setPackage("com.kakao.talk");

      이러한 코드가 있네요.


      http://dev.epiloum.net/916

      여기 링크도 참고해보셔요

    • 초보 2014.03.24 11:08 신고

      오 감사합니다 ㅠㅠ

  2. ㅎㅇ 2016.08.22 14:25 신고

    지금 fileRoute = Environment.getExternalStorageDirectory(); 이부분이 Required java.io.File Found java.lang.String 이렇게 빨간색으로 뜨고
    Intent it3=getIntent(); 이부분에서 getintent 이부분이 cannot resolve symbol getIntent 이렇게 뜨는데 제가 지금 어뎁터 안에 있는 onClick 안에 지정을 해서 오류가 나는건가요?

    • yonoo88 2016.08.22 18:13 신고

      저도 잘 보진 못하지만 코드를 봐봐야 알 것 같네요..

+ Recent posts

티스토리 툴바