【问题标题】:want to open whatsapp to chat with a unsaved contact number in android app想打开whatsapp与android应用程序中未保存的联系人号码聊天
【发布时间】:2018-12-06 02:16:36
【问题描述】:

我想为一些未保存在用户手机中的号码打开 whatsapp 聊天框。

我正在使用以下代码:

Uri uri = Uri.parse("smsto:" + str_MobileNumber);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra("sms_body", "Hello");
i.setPackage("com.whatsapp");
mContext.startActivity(i);

但是 whatsapp 显示错误:

【问题讨论】:

  • 这不是错误。该电话号码未在 WhatsApp 上注册。
  • @LiemVo ...仅当号码不在我的联系人列表中时才会出现,如果我在手机中保存相同的号码,那么一切正常...

标签: android android-intent whatsapp


【解决方案1】:

方法一——使用android组件名

 public static void openWhatsAppConversation(Context context, String number, String message) {

    number = number.replace(" ", "").replace("+", "");

    Intent sendIntent = new Intent("android.intent.action.MAIN");

    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, message);
    sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
    sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(number) + "@s.whatsapp.net");

    context.startActivity(sendIntent);
}

方法2 - 使用whatsapp api uri

public static void openWhatsAppConversationUsingUri(Context context, String numberWithCountryCode, String message) {

    Uri uri = Uri.parse("https://api.whatsapp.com/send?phone=" + numberWithCountryCode + "&text=" + message);

    Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);

    context.startActivity(sendIntent);
}

【讨论】:

  • 第二种方法对我有用,这应该是公认的答案
【解决方案2】:

抱歉回复晚了。我想你的问题现在必须解决。 您可以尝试以下代码打开未保存号码的对话:

private void openWhatsApp(String number) {
        try {
            number = number.replace(" ", "").replace("+", "");

            Intent sendIntent = new Intent("android.intent.action.MAIN");
            sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.Conversation"));
            sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(number)+"@s.whatsapp.net");
            context.startActivity(sendIntent);

        } catch(Exception e) {
            Log.e(TAG, "ERROR_OPEN_MESSANGER"+e.toString());
        }
    }

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2016-06-28
    相关资源
    最近更新 更多