从Intents打开Twitter应用程序

时间:2012-10-13 19:19:28

标签: android android-intent twitter

有人知道只能打开Twitter应用程序的类名吗? intent.setClassName("com.twitter.android", "com.twitter.android"); 显然这不起作用。

我知道我们可以打开帖子链接,但这不是我想要的。任何人都可以帮忙。 这是发布的代码。

intent.setClassName("com.twitter.android",
        "com.twitter.android.PostActivity");

1 个答案:

答案 0 :(得分:1)

你试过这个吗?请注意,只有安装了Twitter应用程序才能使用它。如果您只想打开应用程序(不发布推文),请尝试将Intent.ACTION_SEND更改为Intent.ACTION_VIEW

 try{
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_TEXT, "this is a tweet");
        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 name=new ComponentName(activity.applicationInfo.packageName, activity.name);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                intent.setComponent(name);
                startActivity(intent);
                break;
            }
        }
  }
    catch(final ActivityNotFoundException e) {
        Log.i("twitter", "no twitter native",e );
    }