选择SMS,WhatsApp或Telegram来发送消息

时间:2016-08-05 19:40:44

标签: 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.setType("vnd.android-dir/mms-sms");

启动了SMS应用程序。

我们如何在Android设备上安装的所有应用程序中选择使用电话号码和标识符(环聊,短信,Skype,线路,电报,Viber,WhatsApp等)?

1 个答案:

答案 0 :(得分:3)

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