【问题标题】:Choose among SMS, WhatsApp, or Telegram to send message在 SMS、WhatsApp 或 Telegram 中选择发送消息
【发布时间】:2016-12-12 07:26:38
【问题描述】:

在我的 Android 应用程序的联系人列表中,有一个启动 WhatsApp 的选项,实现如下:

// Country code is required
final String phoneNumber = "+15555555555";
final String packageName = "com.whatsapp";

Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);

if (null == intent) {
    // Launch Google Play at WhatsApp homepage
    intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("market://details?id=" + MESSAGE_PACKAGE_NAME));
    startActivity(intent);
    return;
}

intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber));
intent.setPackage(packageName);
startActivity(intent);

但这仅允许我通过 WhatsApp 发送消息。

移除包名并将意图类型设置为

intent.setType("vnd.android-dir/mms-sms");

启动了 SMS 应用程序。

我们如何在 Android 设备上安装的所有使用电话号码作为标识符的应用程序(环聊、SMS、Skype、Line、Telegram、Viber、WhatsApp 等)中进行选择?

【问题讨论】:

  • 我相信它现在更喜欢在 SO Docs 中发布这些内容。
  • @Shaishav,可以移动帖子吗?

标签: android sms whatsapp telegram viber


【解决方案1】:

幸运的是,Android Intent.createChooser 足够聪明,可以找出将电话号码理解为标识符的应用 :-)

// Country code is required
String phoneNumber = "+15555555555";
Uri uri = Uri.parse("smsto:" + phoneNumber);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(Intent.createChooser(intent, "Send message"));

【讨论】:

    猜你喜欢
    • 2021-03-17
    • 2014-08-11
    • 1970-01-01
    • 2014-12-28
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2018-11-26
    相关资源
    最近更新 更多