猿问

Android Intent for Twitter应用程序

Android Intent for Twitter应用程序是否有可能显示一个应用程序列表(intent.createChooser仅),只显示我的手机上的推特应用程序(所以htc peep(htc hero)或twitdroid)。我试过它,intent.settype("application/twitter")但它没有找到任何Twitter的应用程序,只显示我的邮件应用程序。

智慧大石
浏览 487回答 4
4回答

月关宝盒

您的用户完全有可能现在和永远只想发布到Twitter。我认为您的用户更有可能想要向人们发送信息,而Twitter是一种可能性。但是,他们可能还想发送短信或电子邮件等。在这种情况下,使用ACTION_SEND,描述在这里。特别是Twidroid支持ACTION_SEND,因此它将出现在可用的传递机制列表中。

12345678_0001

之前发布的解决方案允许您直接在第一个Twitter应用上发布。要显示twitters应用程序列表(如果有多个),您可以自定义Intent.createChooser以仅显示您想要的Itents。诀窍是将EXTRA_INITIAL_INTENTS添加到从createChoose生成的默认列表中,并从列表中删除其他Intent。请看这个示例,我在其中创建一个仅显示我的电子邮件应用程序的选择器。在我的情况下出现三个邮件:Gmail,YahooMail和默认邮件。private&nbsp;void&nbsp;share(String&nbsp;nameApp,&nbsp;String&nbsp;imagePath)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;List<Intent>&nbsp;targetedShareIntents&nbsp;=&nbsp;new&nbsp;ArrayList<Intent>(); &nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;share&nbsp;=&nbsp;new&nbsp;Intent(android.content.Intent.ACTION_SEND); &nbsp;&nbsp;&nbsp;&nbsp;share.setType("image/jpeg"); &nbsp;&nbsp;&nbsp;&nbsp;List<ResolveInfo>&nbsp;resInfo&nbsp;=&nbsp;getPackageManager().queryIntentActivities(share,&nbsp;0); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!resInfo.isEmpty()){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(ResolveInfo&nbsp;info&nbsp;:&nbsp;resInfo)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;targetedShare&nbsp;=&nbsp;new&nbsp;Intent(android.content.Intent.ACTION_SEND); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetedShare.setType("image/jpeg");&nbsp;//&nbsp;put&nbsp;here&nbsp;your&nbsp;mime&nbsp;type &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(info.activityInfo.packageName.toLowerCase().contains(nameApp)&nbsp;||&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.activityInfo.name.toLowerCase().contains(nameApp))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetedShare.putExtra(Intent.EXTRA_TEXT,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"My&nbsp;body&nbsp;of&nbsp;post/email"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetedShare.putExtra(Intent.EXTRA_STREAM,&nbsp;Uri.fromFile(new&nbsp;File(imagePath))&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetedShare.setPackage(info.activityInfo.packageName); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetedShareIntents.add(targetedShare); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;chooserIntent&nbsp;=&nbsp;Intent.createChooser(targetedShareIntents.remove(0),&nbsp;"Select&nbsp;app&nbsp;to&nbsp;share"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,&nbsp;targetedShareIntents.toArray(new&nbsp;Parcelable[]{})); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(chooserIntent); &nbsp;&nbsp;&nbsp;&nbsp;}}你可以这样运行:share(“twi”,“/ sdcard / dcim / Camera / photo.jpg”);这基于post:基于已安装的Android软件包名称自定义过滤意图选择器
随时随地看视频慕课网APP

相关分类

Android
我要回答