为了账号安全,请及时绑定邮箱和手机立即绑定

Android Intent for Twitter应用程序

Android Intent for Twitter应用程序

智慧大石 2019-07-26 11:45:04
Android Intent for Twitter应用程序是否有可能显示一个应用程序列表(intent.createChooser仅),只显示我的手机上的推特应用程序(所以htc peep(htc hero)或twitdroid)。我试过它,intent.settype("application/twitter")但它没有找到任何Twitter的应用程序,只显示我的邮件应用程序。
查看完整描述

4 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您的用户完全有可能现在和永远只想发布到Twitter。

我认为您的用户更有可能想要向人们发送信息,而Twitter是一种可能性。但是,他们可能还想发送短信或电子邮件等。

在这种情况下,使用ACTION_SEND,描述在这里。特别是Twidroid支持ACTION_SEND,因此它将出现在可用的传递机制列表中。


查看完整回答
反对 回复 2019-07-26
?
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软件包名称自定义过滤意图选择器


查看完整回答
反对 回复 2019-07-26
  • 4 回答
  • 0 关注
  • 486 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信