Twitterアプリケーションにはがインストールされている必要があります。これは、ユーザーが積極的にログインする必要があります(ほとんどの人がそうです)。私はtweetIntent.setType("application/twitter");
が動作するとは思わない、私はそれを見たことがない。あなたはTwitterのアプリケーションパッケージ名であるtweetIntent.setPackage("com.twitter.android");
でフィルタリングすることで、Twitterに対する共有を制限することができます。これは、PackageManagerを使用して利用できることを確認する必要があります。以下は可能なコードですが、私はこれをテストしませんでした。
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.setPackage("com.twitter.android");
tweetIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test; please ignore");
PackageManager pm = context.getPackageManager();
if(pm.queryIntentActivities (tweetIntent, 0).size() > 0) { // If there's at least 1 intent that matches then the intent is valid.
startActivity(Intent.createChooser(tweetIntent, "Choose one"));
} else {
// Not supported.
}
Androidのシェアの意図は、他のアプリケーションに共有するためのデータを送信するためのものです。あなたが行っているように特定のアプリケーションに共有を制限することは可能です。しかし、あなたはAndroidの仕組みの穀物に逆らって、あなたはそれを実行することによって非互換性の問題にあなた自身を開きます。直接Twitter APIを使用する方が良いかもしれません。
ユーザーがTwitterをインストールしていないと、実際には気にしない可能性があります。しかし、彼らはFacebookのような別のサービスでコンテンツを共有したいかもしれない。