我正在使用以下代码从另一个应用程序中发布推文:
try{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "It's a Tweet!" + "#MyApp");
intent.setType("text/plain");
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)) {
final ActivityInfo activity=app.activityInfo;
final ComponentName x=new ComponentName(activity.applicationInfo.packageName, activity.name);
intent=new Intent(Intent.ACTION_SEND);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(x);
intent.putExtra(Intent.EXTRA_TEXT, "blah blah" );
startActivity(intent);
break;
}
}
} catch(final ActivityNotFoundException e) {
Log.i("Twitter intent", "no twitter native", e );
}
如果 twitter 应用程序已安装在手机上但未打开,则上述代码可以完美运行。但是,如果我在使用上述活动之前使用 twitter,那么我只是简单地转移到我上次离开 twitter 的同一点,并且我想发推文的文本不会发布。我应该怎么做才能纠正这个?
另外,如果我的手机上没有安装 twitter,那么什么也不会发生。在按下启动上述意图的按钮时,没有任何反应,但我实际上不应该收到消息 - 没有 Twitter 原生。应该怎么做才能收到消息??