Send message to specific contact through whatsapp from another app

匿名 (未验证) 提交于 2019-12-03 03:06:01

问题:

Is it possible to send message to a specific contact through whatsapp directly from another app? I know the contact ID. I don't want to open whatsapp via Intent. I just want to send the message directly like normal sms.

i have tried other solutions posted on stackoverflow but they are not working for me.

回答1:

Let me know if it works for you,

Uri mUri = Uri.parse("smsto:+9876543210"); Intent mIntent = new Intent(Intent.ACTION_SENDTO, mUri); mIntent.setPackage("com.whatsapp"); mIntent.putExtra("sms_body", "The text goes here"); mIntent.putExtra("chat",true); startActivity(mIntent); 


回答2:

It wont send message in a go but lets you open the screen for the same in whatsapp:

private void openWhatsApp() {     String smsNumber = "91XXXXXXXX20";     boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");     if (isWhatsappInstalled) {          Intent sendIntent = new Intent("android.intent.action.MAIN");         sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));         sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(smsNumber) + "@s.whatsapp.net");//phone number without "+" prefix          startActivity(sendIntent);     } else {         Uri uri = Uri.parse("market://details?id=com.whatsapp");         Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);         Toast.makeText(this, "WhatsApp not Installed",                 Toast.LENGTH_SHORT).show();         startActivity(goToMarket);     } }  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; } 


回答3:

Please try this,

public void onClickWhatsApp(View view) {  Intent waIntent = new Intent(Intent.ACTION_SEND); waIntent.setType("text/plain");         String text = "YOUR TEXT HERE"; waIntent.setPackage("com.whatsapp"); if (waIntent != null) {     waIntent.putExtra(Intent.EXTRA_TEXT, text);//     startActivity(Intent.createChooser(waIntent, "Share with")); } else {     Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)             .show(); } } 

Source : Please check this answer for further details



回答4:

Please try this. Its working perfectly fine for me.

    Intent sendIntent = new Intent("android.intent.action.MAIN");     sendIntent.setAction(Intent.ACTION_SEND);     sendIntent.setPackage("com.whatsapp");     sendIntent.setType("text/plain");     sendIntent.putExtra("jid", "9194******22" + "@s.whatsapp.net");// here 91 is country code     sendIntent.putExtra(Intent.EXTRA_TEXT, "Demo test message");     startActivity(sendIntent); 


回答5:

This will be work but you need to mobile no. with country code like for India 91. eg. 91758XXXXXX2

String url = "https://api.whatsapp.com/send?phone=" + 91758XXXXXX2 + "&text=" + URLEncoder.encode("good morning", "UTF-8");     i.setPackage("com.whatsapp");     i.setData(Uri.parse(url));     if (i.resolveActivity(packageManager) != null) {       startActivity(i);     } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!