2017-07-27 115 views
0

我试过这么多的解决方案,但仍然没有成功发送消息到特定的WhatsApp联系人在我的应用程序。这里是我的代码:通过WhatsApp在特定的联系人发送消息android

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); 

它只是打开特定联系人的聊天窗口,新的对话与没有接触名称,个人档案相片和旧的转换。

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

enter image description here

回答

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; 
    } 

希望这会有所帮助。

+0

可读性注释:'whatsappInstalledOrNot()'应该更正确地命名'isWhatsappInstalled' –

+1

感谢您的建议。 –

+0

@Amrish Kakadiya我尝试过,发现它的唯一接受号码与国家代码也需要时间来搜索whatsapp联系人列表中的特定联系人。 –

0
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); 

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

相关问题