2014-09-11 68 views
0

我在那里我试图添加共享功能,通过twitter.i已经成功实现,其中用户可以通过Twitter的应用程序分享Android应用:分享通过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

我记得这应该与本地Twitter的工作

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 
} 
+0

是的,它会,但问题是:如果用户没有登录,用户登录后,它会移动到主页选项卡,所有推文会显示出来,相反,它应该已经移动到发布我的文本将被添加的推文页面。 – user2056563 2014-09-11 08:51:18

+0

对不起,但您无法更改默认的twitter应用程序行为 – Olesia 2014-09-11 09:00:25