LINE,Twitterに投稿する機能をつける(Android)

iosとAndroid

ios の場合

iosだとSocial.frameworkを使って簡単にLINE,Twitterやfacebookへの共有ができる。
またfacebook SDKを利用しなくてもURL以外の情報も設定可能。
ずるいよ(´ω`)

Android の場合

Androidの場合intentなどで連携が出来る。
ここでは簡単な方法としてLineやtwitter、facebookとの連携は暗黙的intentを使って行う。
facebookの場合はfacebookSDKを利用しないとURL以外の情報は投稿不可能。
そのため実用性が低いので、ここではfacebookは説明しません。

では本題のAndroidでLINEやTwitterへの投稿機能を暗黙的intentで呼び出すコードです。

LINEへの投稿

String uri = "line://msg/text/投稿したい内容";
Intent intent = null;
try {
    intent = Intent.parseUri(uri, Intent.URI_INTENT_SCHEME);
} catch (URISyntaxException e) {
     e.printStackTrace();
}
startActivity(intent);

Twitterへの投稿

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setPackage("com.twitter.android");
intent.putExtra(Intent.EXTRA_TEXT, "投稿したい内容");
startActivity(intent);

Twitter への投稿 (SDカード内の画像添付)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setPackage("com.twitter.android");
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_TEXT, "投稿したい内容");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path_to_img));
startActivity(intent);

Twitter への投稿 (R.drawableの画像添付)

String path_to_img = 
	String.format(
    	"android.resource://%s/drawable/%s",  
        getPackageName(), 
        R.drawable.path_to_img);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setPackage("com.twitter.android");
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_TEXT, "投稿したい内容");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path_to_img));
startActivity(intent);

※本来はアプリ(パッケージ)が存在するかどうかチェックする必要あり。