アプリから何かをツイートするための次のコードがあります。
try {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,
"Blah blah blah");
final PackageManager pm = getPackageManager();
final List<?> activityList = pm
.queryIntentActivities(intent, 0);
int len = activityList.size();
for (int i = 0; i < len; i++) {
final ResolveInfo app = (ResolveInfo) activityList.get(i);
if ("com.twitter.android.PostActivity"
.equals(app.activityInfo.name)) {
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.twitter.android",
"com.twitter.android.PostActivity");
startActivity(intent);
break;
}
}
} catch (final ActivityNotFoundException e) {
onCreateDialog(NO_APP);
}
protected Dialog onCreateDialog(int id) {
Dialog dialog;
switch (id) {
case NO_APP: {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.icon_small);
builder.setTitle("Twitter");
builder.setMessage("No Twitter app found");
builder.setCancelable(false);
builder.setPositiveButton("OK", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
finish();
}
});
dialog = builder.create();
return dialog;
}
default:
return super.onCreateDialog(id);
}
}
Twitterが私の電話にインストールされている場合、アプリは正常に動作し、新しいツイートが生成されます。アプリが存在しない場合は、アプリがないことを示すダイアログを表示したいと思います。ただし、現時点では、電話にTwitterアプリがない場合は何も起こりません。アプリのツイートボタンを押しても何も起こりません。この場合、ダイアログを表示するにはどうすればよいですか?