【问题标题】:Send message to particular contact through WhatsApp in android通过android中的WhatsApp向特定联系人发送消息
【发布时间】:2017-07-27 07:05:21
【问题描述】:

我尝试了很多解决方案,但在我的应用程序中向特定的 whatsapp 联系人发送消息仍然没有成功。这是我的代码:

  Intent sendIntent = new Intent("android.intent.action.MAIN");
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.setType("text/plain");
                sendIntent.putExtra(Intent.EXTRA_TEXT, "Hey");
                sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(smsNumber) + "@s.whatsapp.net"); 
                sendIntent.setPackage("com.whatsapp");
                mContext.startActivity(sendIntent);

它只是打开特定的联系人聊天窗口作为没有联系人姓名、个人资料图片和旧转换的新对话。

请帮我解决这个问题。还附上截图。

【问题讨论】:

    标签: android text share whatsapp


    【解决方案1】:

    我想你想要这样。

    private void openWhatsApp() {
            String text = message.getText().toString();
            if(whatsappInstalledOrNot("com.whatsapp")){
                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("whatsapp://send?text="+text+"&phone="+mobileNumber.getText().toString()));
                startActivity(browserIntent);
            }else {
                Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                        .show();
            }
        }
    private boolean whatsappInstalledOrNot(String uri) {
            PackageManager pm = getPackageManager();
            boolean app_installed = false;
            try {
                pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
                app_installed = true;
            } catch (PackageManager.NameNotFoundException e) {
                app_installed = false;
            }
            return app_installed;
        }
    

    希望这会有所帮助。

    【讨论】:

    • 可读性说明:whatsappInstalledOrNot() 应该更恰当地命名为 isWhatsappInstalled
    • 感谢您的建议。
    • @Amrish Kakadiya 我试过了,发现它唯一接受带有国家代码的号码也需要时间在whatsapp联系人列表中搜索特定联系人。
    • 是的,它只接受国家代码。关于时间的事情,是关于你的互联网。我认为没有其他方法可以解决您的问题。我也搜索了很多关于这个问题的网站和问题。
    【解决方案2】:
    Intent sendIntent = new Intent("android.intent.action.MAIN");
            sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.Conversation"));
            sendIntent.putExtra(Intent.EXTRA_TEXT, "Hey");
            sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators("91xxxx008686")+"@s.whatsapp.net");
    //phone number without "+" prefix (countrycode & contact number without '+')
    
            startActivity(sendIntent);
    

    您错过了从“对话”类中检索旧对话的设置组件部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 2016-07-20
      • 2013-10-20
      相关资源
      最近更新 更多