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 に答える