【发布时间】:2016-06-06 14:32:39
【问题描述】:
我尝试仅通过 facebook、twitter 和 g+ 共享一些数据,因此我创建了一个自定义的意图列表,我可以发送一些文本,一切正常。 但我在推特上遇到了显示问题,见下文
你可以看到这个 Systeme Android,如果我点击它,我会得到这个:
查看代码:
在第一个函数中,我只是放置了我想使用的包
private List<String> getShareApplication(){
List<String> mList=new ArrayList<>();
mList.add("com.facebook.katana");
mList.add("com.google.android.apps.plus");
mList.add("com.twitter.android");
return mList;
}
在这个我使用上面的列表,如果包存在于我的手机上,我会查看循环,我创建一个带有 ACTION_SEND 的 Intent 调用targetedShare 并在其中放入一些文本,最后将它添加到targetShareIntents 列表
private void Share(List<String> PackageName) {
List<Intent> targetedShareIntents = new ArrayList<>();
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("text/plain");
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()){
for (ResolveInfo info : resInfo) {
Intent targetedShare = new Intent(android.content.Intent.ACTION_SEND);
if (PackageName.contains(info.activityInfo.packageName.toLowerCase())) {
targetedShare.setType("text/plain");
targetedShare.putExtra(Intent.EXTRA_TEXT, String.valueOf(urlJson));
targetedShare.setPackage(info.activityInfo.packageName.toLowerCase());
targetedShareIntents.add(targetedShare);
}
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[targetedShareIntents.size()]));
startActivity(chooserIntent);
}
}
}
我尝试使用在 stackOverflow 上找到的其他代码,并尝试使用其他设备,并尝试使用其他一些 twitter 包名称,例如:
com.twitter.android.composer.ComposerActivity
com.twitter.android.DMActivity
com.twitter.android.PostActivity
等等……
但我还是遇到了这个问题
【问题讨论】:
标签: android android-intent twitter share social-networking