Comme j'ai trouvé d'anciens messages indiquant que whatsapp ne prend pas en charge cette fonction, je me demandais si quelque chose avait changé et s'il existait un moyen d'ouvrir un "chat" whatsapp avec un numéro que j'envoie par le biais d'une intention ?
Réponses
Trop de publicités?UPDATE Veuillez vous référer à https://faq.whatsapp.com/en/Android/26000030/?category=5245251
La fonction "Cliquer pour chatter" de WhatsApp vous permet de commencer une discussion avec avec quelqu'un sans que son numéro de téléphone ne soit enregistré dans le répertoire carnet d'adresses de votre téléphone. Dès lors que vous connaissez le numéro de téléphone de cette personne, vous pouvez créer un lien qui vous permettra de commencer une conversation avec elle.
Utilisez : https://wa.me/15551234567
Ne pas utiliser : https://wa.me/+001-(555)1234567
Ejemplo: https://wa.me/15551234567?text=I'm%20interested%20in%20your%20car%20for%20sale
Réponse originale Voici la solution
public void onClickWhatsApp(View view) {
PackageManager pm=getPackageManager();
try {
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
String text = "YOUR TEXT HERE";
PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
//Check if package exists or not. If not then code
//in catch block will be called
waIntent.setPackage("com.whatsapp");
waIntent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(waIntent, "Share with"));
} catch (NameNotFoundException e) {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
}
}
J'ai trouvé la solution suivante, d'abord vous aurez besoin de l'identifiant whatsapp :
En accord avec les rapports de certains autres fils de discussion ici et dans d'autres forums, le nom de connexion que j'ai trouvé était une sorte de : indicatif régional international sans les 0 ou + au début + numéro de téléphone sans le premier 0 + @s.whatsapp.net
Par exemple, si vous vivez aux Pays-Bas et que vous avez le numéro de téléphone 0612325032, ce sera 31612325023@s.whatsapp.net -> +31 pour les Pays-Bas sans les 0 ou les + et le numéro de téléphone sans le 0.
public void sendWhatsAppMessageTo(String whatsappid) {
Cursor c = getSherlockActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
new String[] { whatsappid }, null);
c.moveToFirst();
Intent whatsapp = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
c.close();
if (whatsapp != null) {
startActivity(whatsapp);
} else {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
//download for example after dialog
Uri uri = Uri.parse("market://details?id=com.whatsapp");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
}
}
Cela devrait fonctionner que Whatsapp soit installé ou non.
boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");
if (isWhatsappInstalled) {
Uri uri = Uri.parse("smsto:" + "98*********7")
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Hai Good Morning");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
} else {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
Uri uri = Uri.parse("market://details?id=com.whatsapp");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
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;
}
- Réponses précédentes
- Plus de réponses