Twitter しか反応しないじゃん!

最初、"twitter://" を使えば Android機にインストールされている "twitter://" に対応するアプリ一覧が表示されて、そこから好きなアプリを選んで起動できるんじゃないか?なんて夢を見てしまった。
でもそんな結果にはならずに、"twitter://" に反応するアプリは結局 Twitter だけで、他の Janetter や HootSuite はうんともすんとも言わないのだった。
Twitter もちゃんと twitter://〜 とその後の部分を設定しないとやはり反応しない…)


そんなわけで、結局 Twitter 関連アプリの一覧が出てくる!って夢は捨てて、簡単に Twitter アプリを起動するだけで我慢することにした。

Twitter がインストールされているかどうか確認してからツイートする

まずは Twitter がインストールされているかどうかをこんなコードで調べる。
出典はココ

boolean appInstalledOrNot(Context context, String uri) {
	PackageManager pm = context.getPackageManager();
	boolean app_installed = false;
	try {
		pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
		app_installed = true;
	} catch (PackageManager.NameNotFoundException e) {
		app_installed = false;
	}
	return app_installed ;
}

渡す uriTwitter の場合 "com.twitter.android"。
因に LINE の場合は "jp.naver.line.android"。


インストールされていることが確認できたら、次はメッセージを uri にして Intent を作成して起動する。

String url = "twitter://post?message=test";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);

これで Twitter アプリが起動して、渡したメッセージの "test" が入力された状態になる。