android - 选择 SMS、WhatsApp 或 Telegram 发送消息

标签 android sms whatsapp telegram viber

在我的 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 类型设置为

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

推出短信应用程序。

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

最佳答案

幸运的是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"));

关于android - 选择 SMS、WhatsApp 或 Telegram 发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38796704/

相关文章:

java - 摆脱(隐藏)Android TabWidget 的 "Focused State"

java - 无法在我的 firebase 数据库中获取 Children

android - 在目前不支持的平板电脑上安装 Sip api?

android - Phonegap Android SmsSendingPlugin 不返回未发送的短信

php - 如何设计短信服务?

php - 网页谷歌地图分享到 whatsapp

android - 检测 android 上的不良网络连接

python - Clickatell 无法将消息路由至 Google Voice

xmpp - 应用程序终止时 Ejabberd 消息传递

ios - 从UIActivityViewController调用时,选择收件人后WhatsApp卡住