How to use messaging in android application by using WhatsApp and WeChat?
Actually requirement is to send sms using WhatsApp and We
you can try one of these two solutions they worked for me.
reference: https://faq.whatsapp.com/en/android/26000030/?category=5245251
private void openWhatsApp(String countryCode, String mobile) {
String customerPhoneNumber = String.format("%s%s", countryCode, mobile);
Uri uri = Uri.parse("smsto:" + customerPhoneNumber);
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.setPackage("com.whatsapp");
if(sendIntent.resolveActivity(getPackageManager()) == null){
showDialogMessage("you should install whatsapp.");
return;
}
startActivity(sendIntent);
}
or
private void openWhatsApp(String countryCode, String mobile) {
String customerPhoneNumber = String.format("%s%s", countryCode, mobile);
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setPackage("com.whatsapp");
// you can remove this part ("&text=" + "your message")
String url = "https://api.whatsapp.com/send?phone=" + customerPhoneNumber + "&text=" + "your message";
sendIntent.setData(Uri.parse(url));
if(sendIntent.resolveActivity(getPackageManager()) == null){
showDialogMessage("you should install whatsapp.");
return;
}
startActivity(sendIntent);
}
This should help to send message using whatsapp:
public void sendWhatsAppMsg() {
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
String text = "testing message";
waIntent.setPackage("com.whatsapp");
if (waIntent != null) {
waIntent.putExtra(Intent.EXTRA_TEXT, text);//
startActivity(Intent.createChooser(waIntent, text));
} else {
Toast.makeText(this, "WhatsApp not found", Toast.LENGTH_SHORT)
.show();
}
}
I got the Solution.. Here I am posting the answer so that it may help other people who may have same doubt..
For Share through any application...
public void sendAppMsg(View view) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
String text = " message you want to share..";
// change with required application package
intent.setPackage("PACKAGE NAME OF THE APPLICATION");
if (intent != null) {
intent.putExtra(Intent.EXTRA_TEXT, text);//
startActivity(Intent.createChooser(intent, text));
} else {
Toast.makeText(this, "App not found", Toast.LENGTH_SHORT)
.show();
}
}
Note : change *PACKAGE NAME OF THE APPLICATION as per your requirement like
Example : USE
//Whatsapp
intent.setPackage("com.whatsapp");`
//Linkedin
intent.setPackage("com.linkedin.android");
//Twitter
intent.setPackage("com.twitter.android");
//Facebook
intent.setPackage("com.facebook.katana");
//GooglePlus
intent.setPackage("com.google.android.apps.plus");
To send direct message to any whatsapp user use following code :
private void sendMessageToWhatsAppContact(String number) {
PackageManager packageManager = context.getPackageManager();
Intent i = new Intent(Intent.ACTION_VIEW);
try {
String url = "https://api.whatsapp.com/send?phone=" + number + "&text=" + URLEncoder.encode(CommonStrings.SHARING_APP_MSG, "UTF-8");
i.setPackage("com.whatsapp");
i.setData(Uri.parse(url));
if (i.resolveActivity(packageManager) != null) {
context.startActivity(i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
This is the simplest example that I get
/**
* sends message to the specific application
* @param text The message that user wants to send
* @param view is the activity view of the application
*/
public void sendMessage(String text, View view){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("text/plain");
intent.setPackage("com.example.appname");//For whatsapp you can use com.whatsapp
if (intent !=null){
intent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(intent);
}else{
Snackbar.make(this, "Application not found.", Snackbar.LENGTH_SHORT).show();
}
}