通过Twitter Native App分享

时间:2014-09-11 07:41:50

标签: android twitter

我有Android应用程序,我试图通过twitter.i添加共享功能已成功实现用户可以通过Twitter应用程序共享:

这是我的代码:

Intent tweetIntent = new Intent(Intent.ACTION_SEND);
            tweetIntent.setType("text/plain");
            tweetIntent.putExtra(Intent.EXTRA_SUBJECT, "tweet");
            tweetIntent.putExtra(Intent.EXTRA_TEXT, "sample tweet");

            PackageManager pm = activity.getPackageManager();
            List<ResolveInfo> lract = pm.queryIntentActivities(tweetIntent, PackageManager.MATCH_DEFAULT_ONLY);
            boolean resolved = false;
            for (ResolveInfo ri : lract) {
                if (ri.activityInfo.name.contains("twitter")) {
                    tweetIntent.setClassName(ri.activityInfo.packageName,
                            ri.activityInfo.name);
                    resolved = true;
                    break;
                }
            }
            if(resolved){
                activity.startActivity(tweetIntent);
            }else{
                // do something
            }

点击按钮的方案:

1)打开twitter native app,如果用户已登录,则将控件传递到post tweet page,我的文字将被添加到其中,点击帖子后会成功发布。

问题情景

如果用户尚未登录,则用户将sign in,之后它将移至显示所有推文的Home tab,而应该已移至post tweet page我的位置文字将被添加。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我记得这应该适用于本地推特

String twitterPackage = "com.twitter.android";
String errorMessage = "You should install Twitter app first";
if(isPackageInstalled(twitterPackage, getActivity())){
    Intent tweetIntent = new Intent(Intent.ACTION_SEND);
    tweetIntent.setType("text/*");
    tweetIntent.setPackage(twitterPackage);
    tweetIntent.putExtra(Intent.EXTRA_TEXT, "sample tweet");
    getActivity().startActivity(tweetIntent);
} else {
    Toast.makeText(getActivity(), errorMessage, Toast.LENGHT_SHORT).show();// handle error
}