选择 SMS、WhatsApp 或 Telegram 发送消息
Choose among SMS, WhatsApp, or Telegram to send message
在我的 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 设备上安装的所有使用 phone 号码作为标识符的应用程序中进行选择(Hangouts、SMS、Skype、Line、Telegram、Viber、WhatsApp 等) ?
幸运的是 Android Intent.createChooser
足够聪明,可以找出将 phone 数字理解为标识符的应用程序:-)
// 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 应用程序的联系人列表中,有一个启动 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 设备上安装的所有使用 phone 号码作为标识符的应用程序中进行选择(Hangouts、SMS、Skype、Line、Telegram、Viber、WhatsApp 等) ?
幸运的是 Android Intent.createChooser
足够聪明,可以找出将 phone 数字理解为标识符的应用程序:-)
// 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"));