关于这个问题的问题很少,但它们似乎都没有帮助我,我有一个“分享短信”按钮的对话框。 当我按下它时,我想显示可以发送它的短信应用程序。 它正在工作,但我得到了更多的应用程序,然后我想要。 我想只显示假设发送短信的应用, 但它显示了一切.. linkedin,Facebook,gmail,基本上每个应用程序。
我只想要消息应用程序,例如Messenger,以及默认的手机消息应用程序。
这是我目前的代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,
SharedPref.getNamePrefValue() +
" shared " + doc.getName());
startActivity(intent);
我怎样才能只列出我想要的应用程序? 我试过用不同的setType选项“玩”但没有一个工作。
非常感谢你的帮助!
答案 0 :(得分:0)
这是它的工作原理。您只需列出声明能够处理text/plain
内容的所有应用。我建议不要限制您的用户并更改按钮的标签,以及#34;与短信共享"只是"分享"并让您的用户决定。
答案 1 :(得分:0)
您可以使用其包名为特定应用创建意图,因此您的意图将被传递到该特定应用,并且不会显示任何对话框。但如果没有安装该应用程序,您将不得不处理它,可能会提示用户去游戏商店。
我建议你做@ marcin-orlowski建议的事情:用intent filter缩小可能性,让用户决定哪个应用程序将处理数据。
答案 2 :(得分:0)
要表明您要发送短信,只需指定意图数据,如下所示:
intent.setData(Uri.parse("sms:"));
然后选择器将只向您展示可以处理短信的应用程序。 请注意,要指定短信的正文,您可以使用:
intent.putExtra("sms_body", "the text to send");
答案 3 :(得分:0)
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", SMS_BODY);
sendIntent.setType("vnd.android-dir/mms-sms");
activity.startActivity(sendIntent);
我希望这个答案可以帮到你