Android Intent for Twitter应用程序是否有可能显示一个应用程序列表(intent.createChooser仅),只显示我的手机上的推特应用程序(所以htc peep(htc hero)或twitdroid)。我试过它,intent.settype("application/twitter")但它没有找到任何Twitter的应用程序,只显示我的邮件应用程序。
4 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
之前发布的解决方案允许您直接在第一个Twitter应用上发布。要显示twitters应用程序列表(如果有多个),您可以自定义Intent.createChooser以仅显示您想要的Itents。
诀窍是将EXTRA_INITIAL_INTENTS添加到从createChoose生成的默认列表中,并从列表中删除其他Intent。
请看这个示例,我在其中创建一个仅显示我的电子邮件应用程序的选择器。在我的情况下出现三个邮件:Gmail,YahooMail和默认邮件。
private void share(String nameApp, String imagePath) { List<Intent> targetedShareIntents = new ArrayList<Intent>(); Intent share = new Intent(android.content.Intent.ACTION_SEND); share.setType("image/jpeg"); List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0); if (!resInfo.isEmpty()){ for (ResolveInfo info : resInfo) { Intent targetedShare = new Intent(android.content.Intent.ACTION_SEND); targetedShare.setType("image/jpeg"); // put here your mime type if (info.activityInfo.packageName.toLowerCase().contains(nameApp) || info.activityInfo.name.toLowerCase().contains(nameApp)) { targetedShare.putExtra(Intent.EXTRA_TEXT, "My body of post/email"); targetedShare.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(imagePath)) ); targetedShare.setPackage(info.activityInfo.packageName); targetedShareIntents.add(targetedShare); } } Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share"); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{})); startActivity(chooserIntent); }}
你可以这样运行:share(“twi”,“/ sdcard / dcim / Camera / photo.jpg”);
这基于post:基于已安装的Android软件包名称自定义过滤意图选择器
- 4 回答
- 0 关注
- 486 浏览
添加回答
举报
0/150
提交
取消