안녕하세요. 이번 포스팅 주제는 '자체 선정한 국내 주요 SNS 공유하기'입니다.
SNS 목록은 라인, 카카오톡, 인스타그램, 트위터, 페이스북입니다.
라인
URL 스키마를 사용한 콘텐츠 공유를 제공합니다. 메세지 전송이 아닌, 공유한 메세지가 입력된 채팅창이 띄워집니다.
private void sharedLine() {
String text = "line://msg/text/" + "메시지를 입력하렴";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(text));
startActivity(intent);
}
해당 메소드가 실행되면 라인 앱이 있을 경우 라인 앱이 켜지고, 없는 경우 에러가 발생하므로 메소드 사용전 라인 앱이 존재하는지 여부를 먼저 체크하는게 좋습니다.
자세한 사항은 개발자 사이트를 참고해주세요.
카카오톡
카카오톡은 확장성을 고려해 URL 스키마를 활용한 공유를 더 이상 지원하지 않습니다. 카카오톡에서 제공하는 별도 sdk를 사용해서 구현해야합니다.
개발자 사이트에 나와 있는 내용이 많아 해당 포스팅에서는 다루지 않겠습니다.
인스타그램
인스타그램은 사진기반 sns로 텍스트 공유는 지원하지 않고 오직, 이미지 공유만을 지원합니다.
private void shareImage(Uri imgUri) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, imgUri);
intent.setPackage("com.instagram.android");
startActivity(intent);
}
사진 공유시 권한 체크 및 사진의 uri 가져 와야합니다. 해당 풀 소스는 아래 기재후 관련 상세 내용은 제가 기존에 작성한 포스팅 링크로 대체하겠습니다.
관련 포스팅
[안드로이드/Android] 카메라와 갤러리에서 사진 가져오기
트위터
트위터는 트윗 및 리트윗 url 스키마를 제공합니다. 별도 사진 공유는 제공하지 않습니다.
private void shareTwitter() {
try {
String sharedText = String.format("http://twitter.com/intent/tweet?text=%s",
URLEncoder.encode("공유한다", "utf-8"));
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharedText));
startActivity(intent);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
트위터 앱이 있는 경우 트위터 앱을 / 없는 경우 외부 브라우저의 트위터 사이트를 노출시킵니다.
페이스북
페이스북은 카카오톡과 동일하게 별도 url 및 스키마를 제공하지 않고, sdk를 사용해야합니다.
페이스북 역시 해당 포스팅에서는 상세하게 다루지 않도록 하겠습니다.
※해당 포스팅은 지극히 주관적인 내용으로 저자의 복기 목적으로 작성된 것이고, 내용에대해 수정이나 추가 요청은 언제든 환영합니다.
'안드로이드 > 자바' 카테고리의 다른 글
[안드로이드/Android] 이미지 리사이즈 (0) | 2018.04.07 |
---|---|
[안드로이드/Android] Flavors로 여러 버전별 빌드 (0) | 2018.04.05 |
[안드로이드/Android] 쿠키매니저 다루기 (0) | 2018.02.27 |
[안드로이드/Android] 애드몹 보상형 광고 넣기 (0) | 2018.02.19 |
[안드로이드/Android] 카톡으로 공유하기 (5) | 2018.02.13 |