我使用此代码开始使用官方 Twitter 应用在 Twitter 上发帖:
Intent twitterIntent = new Intent(Intent.ACTION_VIEW); //Intent.ACTION_VIEW
twitterIntent.setAction("android.intent.action.SEND");
twitterIntent.setFlags(0x3000000);
twitterIntent.setType("text/plain");
twitterIntent.setClassName("com.twitter.android", "com.twitter.android.PostActivity");
twitterIntent.putExtra(Intent.EXTRA_TEXT, ("Random post"));
startActivity(twitterIntent);
在使用它之前,我还会检查此意图是否可用:
public static boolean canReceiveIntent (Intent intent, Context c) {
PackageManager packageManager = c.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
return isIntentSafe;
}
它工作正常,但在发布推文(在提要上)后 Twitter 应用程序仍然打开。我也尝试使用 startActivityForresult(),但它崩溃并出现错误:
java.lang.RuntimeException: android.util.AndroidRuntimeException: FORWARD_RESULT_FLAG used while also requesting a result
发布推文后如何返回我的应用程序?