Da ich einige ältere Beiträge gefunden habe, die besagen, dass WhatsApp dies nicht unterstützt, habe ich mich gefragt, ob sich etwas geändert hat und ob es eine Möglichkeit gibt, einen WhatsApp-Chat mit einer Nummer zu öffnen, die ich durch eine Absicht sende?
Nachricht über WhatsApp senden
Diego
AKTUALISIEREN
Bitte beziehen Sie sich auf https://faq.whatsapp.com/en/android/26000030/?category=5245251
Mit der Click-to-Chat-Funktion von WhatsApp können Sie einen Chat mit jemandem beginnen, ohne dass dessen Telefonnummer im Adressbuch Ihres Telefons gespeichert ist. Solange Sie die Telefonnummer dieser Person kennen, können Sie einen Link erstellen, über den Sie einen Chat mit ihr beginnen können.
Verwenden: https://wa.me/15551234567
Nicht verwenden: https://wa.me/+001-(555)1234567
Beispiel: https://wa.me/15551234567?text=Ich bin%20interessiert%20an%20Ihrem%20Auto%20zum%20Verkauf
Ursprüngliche Antwort
Hier ist die Lösung
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();
}
}
-
Wie lässt sich Messaging integrieren? damit der Benutzer WhatsApp oder Messaging wählen kann
– Srikanth Pai
10. Mai 2013 um 11:06 Uhr
-
Wenn wir bereits die Kontaktinformationen haben, ist es möglich, die Kontaktinformationen hinzuzufügen und eine Nachricht zu senden, ohne den Kontakt berühren zu müssen, um ihn auszuwählen und auf OK zu klicken, um ihn zu senden?
– Benutzer1492955
13. Juni 2013 um 7:02 Uhr
-
siehe stackoverflow.com/questions/19081654/…
– Manan Sharma
24. Oktober 2013 um 21:00 Uhr
-
@MananMerevikSharma Quelle lügt nicht (android.googlesource.com/platform/frameworks/base/+/refs/heads/…). Außerdem grundlegendes Java-Prinzip: Ein Objekt lebt, bis es keine Verweise mehr darauf gibt.
– JRomero
11. Mai 2014 um 7:20 Uhr
-
@MananMerevikSharma -1. Es wird nicht “zu einem Nullzeiger”. Der else-Teil kann nie erreicht werden. Wenn WhatsApp nicht installiert ist, wird der Intent trotzdem gesendet, aber es öffnet sich ein Dialog, der besagt, dass es keine passende App gibt. Dies bedeutet, dass Sie keine Möglichkeit bieten, zu überprüfen, ob WhatsApp installiert ist oder nicht.
– 0101100101
25. Juli 2014 um 14:28 Uhr
Mit diesem Code können Sie den WhatsApp-Chat mit der angegebenen Nummer öffnen.
void openWhatsappContact(String number) {
Uri uri = Uri.parse("smsto:" + number);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.setPackage("com.whatsapp");
startActivity(Intent.createChooser(i, ""));
}
-
@ user2957782 Ich bin diesem gefolgt, Sir, aber wenn ich auf meine Schaltfläche klicke, um meine WhatsApp zu starten, heißt es: “Keine Apps können diese Aktion ausführen.”
– Arjun Narahari
11. Dezember 2014 um 7:24 Uhr
-
@VihaanVerma kannst du uns sagen, wie du das zum Laufen gebracht hast? Ich habe den gleichen Code für die WhatsApp-Version 2.11.56021 implementiert und bekomme nichts …
– Alamgir Mand
10. März 2015 um 22:39 Uhr
-
Aktiviert, schickt es mich zu allen Chatlisten, nicht zum Chatfenster einer bestimmten Nummer.
– Darpan
27. November 2015 um 12:13 Uhr
-
Es funktioniert nur, wenn Sie diese Nummer in Ihrer Chat- oder Kontaktliste haben.
– Anshul Tyagi
10. März 2016 um 7:15 Uhr
-
anstatt
startActivity(Intent.createChooser(i, ""));
verwendenstartActivity(i);
für direkt geöffneten Nummernchat. 1. Getestet auf Samsung J7 Prime, es funktioniert. 2. Nummer war weder in meiner Kontaktliste noch in meiner Chatliste. 3. Wenn die Nummer WhatsApp nicht verwendet, wird ein Dialogfeld angezeigt, in dem ich gefragt werde, ob ich diesen Kontakt zu WhatsApp einladen möchte. Ich denke, es ist die beste Lösung, wenn Sie Ihren App-Benutzern WhatsApp-Kontaktunterstützung bieten möchten.– Muhammad Saqib
17. September 2017 um 13:40 Uhr
Ich habe die folgende Lösung gefunden, zuerst benötigen Sie die WhatsApp-ID:
Passend zu Berichten aus einigen anderen Threads hier und in anderen Foren war der Login-Name, den ich gefunden habe, eine Art: internationale Vorwahl ohne die 0 oder + am Anfang + Telefonnummer ohne die erste 0 + @s.whatsapp.net
Wenn Sie beispielsweise in den Niederlanden leben und die Telefonnummer 0612325032 haben, wäre dies [email protected] -> +31 für die Niederlande ohne die 0 oder + und die Telefonnummer ohne die 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);
}
}
-
Ich versuche diesen Code, aber er sagt mir, dass getSherlockActivity() nicht definiert ist. wie kann man das beheben??
– Eman87
5. Dezember 2013 um 22:22 Uhr
-
@ Eman87 Diego verwendet Action Bar Sherlock, also die Methode. Holen Sie sich den Umfang Ihrer Aktivität anstelle von getSherlockActivity().
– Manan Sharma
13. Dezember 2013 um 17:58 Uhr
-
Es macht keinen Sinn
if (whatsapp != null)
wie 2 Zeilen oben Sie tatenIntent whatsapp = new Intent(...)
.– Carcamano
25. Februar 2014 um 18:27 Uhr
-
Dies ist eine gute Option, um das Chatfenster direkt zu öffnen, wenn die Person in den Kontakten vorhanden ist. Gibt es eine Möglichkeit, dasselbe für eine neue Nummer zu tun, die nicht in unseren Kontakten vorhanden ist?
– Mohammed Yakub Moriswala
19. November 2014 um 5:31 Uhr
-
Sie müssen hinzufügen
<uses-permission android:name="android.permission.READ_CONTACTS" />
Erlaubnis hereinAndroidManifest.xml
– Pratik Butani
23. April 2015 um 19:37 Uhr
Latief Anwar
Einfache Lösung, versuchen Sie es.
String phoneNumberWithCountryCode = "+62820000000";
String message = "Hallo";
startActivity(
new Intent(Intent.ACTION_VIEW,
Uri.parse(
String.format("https://api.whatsapp.com/send?phone=%s&text=%s", phoneNumberWithCountryCode, message)
)
)
);
Satheesh
Dies sollte funktionieren, unabhängig davon, ob WhatsApp installiert ist oder nicht.
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;
}
-
Activity Not Found-Ausnahme, auch wenn WhatsApp installiert ist
– itzhar
22. Juli 2015 um 18:55 Uhr
-
Keine Aktivität gefunden, um Absicht zu handhaben {act=android.intent.action.SENDTO typ=text/plain pkg=com.whatsapp (hat Extras)}
– Rajesh
12. Juli 2016 um 9:21 Uhr
-
Sie müssen diese Zeile entfernen, damit sie mit Ihnen funktioniert. sendIntent.setType(“text/plain”);
– MSaudi
2. April 2017 um 17:54 Uhr
-
Das Entfernen von sendIntent.setType(“text/plain”) sorgt dafür, dass die Ausnahme Activity Not Found nicht ausgelöst wird, aber jetzt wird der Text nicht als Nachricht hinzugefügt
– Rik van Velzen
16. Oktober 2017 um 10:25 Uhr
-
sieht so aus, als wäre es nicht mehr möglich, die Aktivität, die die Absicht empfängt, hat einen Verweis auf “sms_body”, aber ich kann es nicht zum Laufen bringen
– sherpya
8. Dezember 2019 um 0:03 Uhr
Regenb
Getestet auf Marshmallow S5 und es funktioniert!
Uri uri = Uri.parse("smsto:" + "phone number with country code");
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
Dies öffnet a Direkte mit einer Person chatten, wenn WhatsApp nicht installiert ist, wird dies eine Ausnahme auslösen, wenn die Telefonnummer WhatsApp nicht bekannt ist, wird angeboten, eine Einladung per SMS oder einfacher SMS-Nachricht zu senden
-
Activity Not Found-Ausnahme, auch wenn WhatsApp installiert ist
– itzhar
22. Juli 2015 um 18:55 Uhr
-
Keine Aktivität gefunden, um Absicht zu handhaben {act=android.intent.action.SENDTO typ=text/plain pkg=com.whatsapp (hat Extras)}
– Rajesh
12. Juli 2016 um 9:21 Uhr
-
Sie müssen diese Zeile entfernen, damit sie mit Ihnen funktioniert. sendIntent.setType(“text/plain”);
– MSaudi
2. April 2017 um 17:54 Uhr
-
Das Entfernen von sendIntent.setType(“text/plain”) sorgt dafür, dass die Ausnahme Activity Not Found nicht ausgelöst wird, aber jetzt wird der Text nicht als Nachricht hinzugefügt
– Rik van Velzen
16. Oktober 2017 um 10:25 Uhr
-
sieht so aus, als wäre es nicht mehr möglich, die Aktivität, die die Absicht empfängt, hat einen Verweis auf “sms_body”, aber ich kann es nicht zum Laufen bringen
– sherpya
8. Dezember 2019 um 0:03 Uhr
Verwenden Sie diesen einzeiligen Code, um eine Nachricht über WhatsApp zu senden
//NOTE : please use with country code first 2digits without plus signed
try {
String mobile = "911234567890";
String msg = "Its Working";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=" + mobile + "&text=" + msg)));
}catch (Exception e){
//whatsapp app not install
}
hast du es mit Share Action Provider versucht?
– Basim Scherif
19. März 2013 um 9:28 Uhr
Klingt interessant, aber wie soll das gehen. Kann ich eine Zeichenfolge (Telefonnummer) teilen und öffnet sie WhatsApp (oder die Auswahl?) Können Sie ein kleines Beispiel geben?
– Diego
19. März 2013 um 10:22 Uhr
Obwohl es in WhatsApp eine ACTION_SENDTO-Absicht gibt, wird sie nicht (ordnungsgemäß) ausgeführt, daher ist es nicht möglich, eine bestimmte Telefonnummer zu verwenden [thats what i found]
– Manan Sharma
11. April 2014 um 20:56 Uhr
Mögliches Duplikat von Text an bestimmten Kontakt senden (WhatsApp)
– Rishabh Maurya
3. November 2016 um 2:59 Uhr
Ich freue mich immer noch darauf, Bild und Text gleichzeitig anzuhängen, habe aber kein Glück gefunden, seufz 🙁
– Gumuruh
10. August 2018 um 7:36 Uhr