검색결과 리스트
공유에 해당되는 글 1건
- 2016.06.06 안드로이드 인텐트를 이용한 SNS공유 2
글
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
SNS로 컨텐츠의 공유를 하기 위해 각 SNS의 SDK를 이용하는 방법도 있지만, 간단하게 각 SNS의 앱 인텐트를 이용하여 SNS공유를 진행할 수도 있다.
1. 공유창
- 공유를 할 수 있는 모든 앱을 표시하는 공유창을 오픈한다.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, content);
Intent chooser = Intent.createChooser(intent, "공유");
startActivity(chooser);
2. SNS 하나만 구현
- 페이스북, 트위터를 예로 작성했지만 App Package만 알면 다른 것들도 충분히 가능하다.
- 여러 코딩을 안내하기 위해 일부러 다른 코딩스타일로 작성하였지만 사실 하나의 메소드로 구현이 가능하다.
페이스북 : com.facebook.katana
트위터 : com.twitter.android
카카오톡 : com.kakao.talk
카카오스토리 : com.kakao.story
1) Facebook
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, content);
PackageManager packManager = mContext.getPackageManager();
List<ResolveInfo> resolvedInfoList = packManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
boolean resolved = false;
for(ResolveInfo resolveInfo: resolvedInfoList) {
if(resolveInfo.activityInfo.packageName.startsWith("com.facebook.katana")){
intent.setClassName(
resolveInfo.activityInfo.packageName,
resolveInfo.activityInfo.name );
resolved = true;
break;
}
}
if(resolved) {
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "페이스북 앱이 없습니다.", Toast.LENGTH_SHORT).show();
}
2) 트위터
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.setPackage("com.twitter.android");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, content);
try {
startActivity(intent);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "트위터 앱이 없습니다.", Toast.LENGTH_SHORT).show();
}
'-- Android' 카테고리의 다른 글
안드로이드 api24 이상부터 Uri 사용 시 FileUriExposedException (0) | 2017.08.29 |
---|---|
모바일웹에서 Custom URL Scheme 호출 시 파라미터 지정 및 처리 (0) | 2017.03.03 |
안드로이드 멀티스레드 (0) | 2015.07.30 |
텍스트 관련 함수 정리 (0) | 2015.07.30 |
BITMAP To BASE64 (0) | 2015.07.21 |
RECENT COMMENT