0

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

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

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

1 回答 1

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 );
    }
于 2012-10-13T20:03:21.050 回答