我有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
我的位置文字将被添加。
我该如何解决这个问题?
答案 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
}