व्हाट्सएप के जरिए मैसेज भेजना


112

चूँकि मुझे कुछ पुराने पोस्ट मिले, जो यह बताता है कि व्हाट्सएप इसका समर्थन नहीं करता है, मैं सोच रहा था कि क्या कुछ बदल गया है और अगर व्हाट्सएप 'चैट' को एक नंबर के साथ खोलने का कोई तरीका है जो मैं एक आशय के माध्यम से भेज रहा हूं?


क्या आपने शेयर एक्शन प्रदाता की कोशिश की?
बसीम शेरिफ

दिलचस्प लगता है, लेकिन यह कैसे काम करेगा। क्या मैं एक स्ट्रिंग (फोननंबर) साझा कर सकता हूं और क्या यह व्हाट्सएप (या चयनकर्ता) खोलेगा? क्या आप थोड़ा उदाहरण दे सकते हैं?
डिएगो

2
हालांकि व्हाट्सएप में ACTION_SENDTO का इरादा है, इसे निष्पादित नहीं किया गया है (ठीक से) इसलिए यह एक विशिष्ट फोन नंबर पर संभव नहीं है [जो मुझे मिला]
मनन शर्मा


मैं अभी भी एक ही समय में छवि और पाठ दोनों को संलग्न करने के लिए तत्पर हूं, लेकिन कोई किस्मत नहीं मिली, आह :(
gumuruh

जवाबों:


180

अद्यतन कृपया https://faq.whatsapp.com/en/android/26000030/?category=52424251 देखें

व्हाट्सएप के क्लिक टू चैट फीचर से आप अपने फोन के एड्रेस बुक में अपना फोन नंबर सेव किए बिना किसी से चैट शुरू कर सकते हैं। जब तक आप इस व्यक्ति के फोन नंबर को जानते हैं, आप एक लिंक बना सकते हैं जो आपको उनके साथ एक चैट शुरू करने की अनुमति देगा।

उपयोग करें: https://wa.me/15551234567

उपयोग न करें: https://wa.me/+001-(555)1234567

उदाहरण: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

मूल उत्तर यहाँ समाधान है

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

}

इसके अलावा http://www.whatsapp.com/faq/en/android/28000012 देखें


कैसे संदेश के साथ एकीकृत करने के लिए? ताकि उपयोगकर्ता व्हाट्सएप या मैसेजिंग को चुन सके
श्रीकांत पई

33
अगर हमारे पास पहले से ही संपर्क जानकारी है तो क्या संपर्क जानकारी जोड़ना और संदेश भेजने के लिए संपर्क पर स्पर्श किए बिना संदेश भेजना संभव है?
user1492955


4
@MananMerevikSharma स्रोत झूठ नहीं बोलता ( android.googlesource.com/platform/frameworks/base/+/refs/heads/… )। इसके अतिरिक्त, मूल जावा सिद्धांत: एक वस्तु तब तक रहती है जब तक कि उनके लिए कोई संदर्भ न हो।
जेमरोमो

1
@ मननमेरविकशर्मा -1। यह "एक अशक्त सूचक की ओर मुड़ता नहीं है"। दूसरे-भाग तक कभी नहीं पहुँचा जा सकता। जब व्हाट्सएप इंस्टॉल नहीं होता है, तब भी आशय भेजा जाता है, लेकिन एक डायलॉग यह कहते हुए खुलता है कि कोई मेल नहीं है। इसका मतलब है कि आप यह जांचने के लिए कोई तरीका नहीं दे रहे हैं कि व्हाट्सएप इंस्टॉल है या नहीं।
0101100101

64

इस कोड से आप दिए गए नंबर से व्हाट्सएप चैट खोल सकते हैं।

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, ""));
}

3
@ user2957782 मैंने इस महोदय का अनुसरण किया है, लेकिन जब मैं अपने बटन पर क्लिक करके अपना व्हाट्सएप शुरू करता हूं तो यह कहता है कि "कोई एप्लिकेशन इस क्रिया को नहीं कर सकता"
arjun narahari

@ विहान वर्मा क्या आप इसे साझा कर सकते हैं कि आपको यह काम कैसे मिला? मैंने व्हाट्सएप संस्करण २.११.५६०२१ के खिलाफ एक ही कोड लागू किया है और मुझे कुछ नहीं मिल रहा है ...
आलमगीर मंड

1
जांच की गई, यह मुझे सभी चैट सूची में भेजता है, न कि किसी विशिष्ट नंबर की चैट विंडो में।
डारपन

8
यह केवल तभी काम करता है जब आपके पास आपकी चैट सूची या संपर्क सूची में वह संख्या होती है।
अंशुल त्यागी

1
बजाय सीधे खुले उपलब्ध चैट के लिए startActivity(Intent.createChooser(i, ""));उपयोग startActivity(i);के। 1. सैमसंग J7 प्राइम पर परीक्षण किया गया यह काम कर रहा है। 2. नंबर मेरी संपर्क सूची में नहीं था और न ही मेरी चैट सूची में। 3. यदि नंबर व्हाट्सएप का उपयोग नहीं कर रहा है, तो एक डायलॉग बॉक्स दिखाई दे रहा है जो मुझसे पूछ रहा है कि क्या मैं व्हाट्सएप पर उस संपर्क को आमंत्रित करना चाहता हूं। यदि आप अपने ऐप उपयोगकर्ताओं के लिए व्हाट्सएप संपर्क समर्थन प्रदान करना चाहते हैं तो यह सबसे अच्छा समाधान है।
मुहम्मद साकिब

25

मुझे निम्नलिखित समाधान मिला, पहले आपको व्हाट्सएप आईडी की आवश्यकता होगी:

यहां कुछ अन्य थ्रेड्स और अन्य मंचों से रिपोर्ट के साथ मिलान करने पर मुझे मिला लॉगिन नाम कुछ इस प्रकार था: पहले 0 + @ s.whatsapp.net के बिना शुरुआत के फोन नंबर में 0 या + के बिना अंतर्राष्ट्रीय क्षेत्र कोड।

उदाहरण के लिए, यदि आप नीदरलैंड में रहते हैं और फोन नंबर 0612325032 है, तो यह 31612325023@s.whatsapp.net होगा -> +31 नीदरलैंड्स के लिए 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);
    }

}

मैं इस कोड की कोशिश कर रहा हूं, लेकिन यह मुझे बताता है कि getSherlockActivity () अपरिभाषित है। इसे कैसे ठीक करें ??
Eman87

2
@ Eman87 डिएगो एक्शन बार शर्लक का उपयोग कर रहा है, इसलिए विधि। GetSherlockActivity () के स्थान पर अपनी गतिविधि का दायरा प्राप्त करें।
मनन शर्मा

4
if (whatsapp != null)आपके ऊपर 2 लाइनों का कोई मतलब नहीं है Intent whatsapp = new Intent(...)
कार्मिकानो

2
यह सीधे चैट विंडो खोलने का अच्छा विकल्प है यदि व्यक्ति संपर्क में मौजूद है। क्या नए नंबर के लिए वही करने का कोई तरीका है जो हमारे संपर्कों में मौजूद नहीं है?
मोहम्मदयाकूब मोरिसवाला

1
आपको इसमें <uses-permission android:name="android.permission.READ_CONTACTS" />अनुमति देने की आवश्यकता है AndroidManifest.xml
प्रतीक बुटानी

16

यह काम करना चाहिए कि क्या व्हाट्सएप इंस्टॉल है या नहीं।

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

11
व्हाट्सएप स्थापित होने पर भी गतिविधि फव्वारा नहीं निकलता है
itzhar

2
Intent {act = android.intent.action.SENDTO टाइप = टेक्स्ट / प्लेन pkg = com.whatsapp (एक्स्ट्रास)} को संभालने के लिए कोई गतिविधि नहीं मिली
राजेश

2
आपको SendIntent.setType ("टेक्स्ट / प्लेन") के साथ काम करने के लिए इस लाइन को हटाने की आवश्यकता है;
MSaudi

2
sendIntent.setType ("टेक्स्ट / प्लेन") को हटाने से एक्टिविटी का ध्यान रखा जाता है, न कि एक्सेप्शन को फेंका नहीं जा रहा है, लेकिन अब मैसेज के रूप में टेक्स्ट नहीं जोड़ा गया है
Rik van Velzen

ऐसा लगता है कि यह अब संभव नहीं है, जिस गतिविधि से मंशा प्राप्त होती है, उसमें "sms_body" का कुछ संदर्भ होता है, लेकिन मैं इसे काम करने में असमर्थ हूं
sherpya

15

सरल समाधान, यह प्रयास करें।

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

10

Marshmallow S5 पर परीक्षण किया गया और यह काम करता है!

    Uri uri = Uri.parse("smsto:" + "phone number with country code");
    Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
    sendIntent.setPackage("com.whatsapp");
    startActivity(sendIntent); 

यह एक व्यक्ति के साथ एक सीधा चैट खोल देगा , अगर व्हाट्सएप ने इसे स्थापित नहीं किया है तो अपवाद छोड़ देगा , अगर फोन नंबर व्हाट्सएप के लिए नहीं जाना जाता है तो वे एसएमएस या सरल एसएमएस संदेश के माध्यम से आमंत्रण भेजने की पेशकश करेंगे।


'भेजें बटन' के बारे में क्या? क्या हम इसे प्रोग्रामेटिक रूप से भी कर सकते हैं ...?
गमरु

3

निम्न कोड Google नाओ ऐप द्वारा उपयोग किया जाता है और किसी अन्य एप्लिकेशन के लिए काम नहीं करेगा।

मैं यह पोस्ट इसलिए लिख रहा हूं क्योंकि इससे मुझे गुस्सा आ रहा है, कि व्हाट्सएप किसी भी अन्य डेवलपर्स को सीधे Google को छोड़कर संदेश भेजने की अनुमति नहीं देता है।

और मैं चाहता हूं कि अन्य फ्रीलांस-डेवलपर्स को पता चले, कि इस तरह का सहयोग चल रहा है, जबकि Google "किसी के लिए भी खुला" के बारे में बात कर रहा है और व्हाट्सएप का कहना है कि वे डेवलपर्स के लिए कोई पहुंच प्रदान नहीं करना चाहते हैं।

हाल ही में व्हाट्सएप ने Google नाओ के लिए विशेष रूप से एक आशय जोड़ा है, जिसे निम्न प्रकार से देखना चाहिए:

Intent intent = new Intent("com.google.android.voicesearch.SEND_MESSAGE_TO_CONTACTS");
intent.setPackage("com.whatsapp");
intent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.VoiceMessagingActivity"));

intent.putExtra("com.google.android.voicesearch.extra.RECIPIENT_CONTACT_CHAT_ID", number);
intent.putExtra("android.intent.extra.TEXT", text);
intent.putExtra("search_action_token", ?????);

मुझे यह भी पता चला कि "search_action_token" एक PendingIntent है जिसमें एक IBinder-Object होता है, जिसे Google App में वापस भेज दिया जाता है और जाँच की जाती है, अगर यह Google नाओ द्वारा बनाया गया था।

अन्यथा व्हाट्सएप संदेश को स्वीकार नहीं करेगा।


दिलचस्प! लेकिन क्या आप "search_action_token" के बारे में अधिक बता सकते हैं कि हम इसे कैसे प्राप्त और कार्यान्वित कर सकते हैं।
बिलाल मुस्तफा

एपीके com.google.android.googlequicksearchbox Class com.google.android.search.verification.api.SearchActionVerificationService विधि बनाएँGoogleVerificationIntent
black-hawk

3

वर्तमान में, केवल आधिकारिक API जिसे आप के लिए GETअनुरोध कर सकते हैं :

https://api.whatsapp.com/send?phone=919773207706&text=Hello

वैसे भी, व्हाट्सएप द्वारा पहले से ही एक गुप्त एपीआई कार्यक्रम चलाया जा रहा है


1
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। - समीक्षा से
कुमार सौरभ

1
@ कुमारसौरभ यह एक लिंक नहीं है, यह एक GET अनुरोध है
ज़मीर

3

व्हाट्सएप के माध्यम से संदेश भेजने के लिए इस सिंगललाइन कोड का उपयोग करें

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

2

यह मेरे लिए काम करता है:

PackageManager pm = context.getPackageManager();
try {
    pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
    Intent intent = new Intent();
            intent.setComponent(new ComponentName(packageName,
                    ri.activityInfo.name));
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, element);

} catch (NameNotFoundException e) {
    ToastHelper.MakeShortText("Whatsapp have not been installed.");
}

2

इसी से मेरा काम बना है :

        Uri uri = Uri.parse("https://api.whatsapp.com/send?phone=" + "<number>" + "&text=" + "Hello WhatsApp!!");
        Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(sendIntent);

2

व्हाट्सएप के डायरेक्ट यूआरएल का उपयोग करें

String url = "https://api.whatsapp.com/send?phone="+number;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

1

यह बहुत लंबा है, लेकिन काम कर रहा है। अपने कोड का आनंद लें :)

 //method used to show IMs
private void show_custom_chooser(String value) {
    List<ResolveInfo> list = null;
    final Intent email = new Intent(Intent.ACTION_SEND);
    email.setData(Uri.parse("sms:"));
    email.putExtra(Intent.EXTRA_TEXT, "" + value);
    email.setType("text/plain"); // vnd.android-dir/mms-sms

    WindowManager.LayoutParams WMLP = dialogCustomChooser.getWindow()
            .getAttributes();
    WMLP.gravity = Gravity.CENTER;
    dialogCustomChooser.getWindow().setAttributes(WMLP);
    dialogCustomChooser.getWindow().setBackgroundDrawable(
            new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialogCustomChooser.setCanceledOnTouchOutside(true);
    dialogCustomChooser.setContentView(R.layout.about_dialog);
    dialogCustomChooser.setCancelable(true);
    ListView lvOfIms = (ListView) dialogCustomChooser
            .findViewById(R.id.listView1);
    PackageManager pm = getPackageManager();
    List<ResolveInfo> launchables = pm.queryIntentActivities(email, 0);
    // ////////////new
    list = new ArrayList<ResolveInfo>();
    for (int i = 0; i < launchables.size(); i++) {
        String string = launchables.get(i).toString();
        Log.d("heh", string);
//check only messangers
        if (string.contains("whatsapp")) {
            list.add(launchables.get(i));
        }
    }
    Collections.sort(list, new ResolveInfo.DisplayNameComparator(pm));
    int size = launchables.size();
    adapter = new AppAdapter(pm, list, MainActivity.this);
    lvOfIms.setAdapter(adapter);
    lvOfIms.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            ResolveInfo launchable = adapter.getItem(position);
            ActivityInfo activity = launchable.activityInfo;
            ComponentName name = new ComponentName(
                    activity.applicationInfo.packageName, activity.name);
            email.addCategory(Intent.CATEGORY_LAUNCHER);
            email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            email.setComponent(name);
            startActivity(email);
            dialogCustomChooser.dismiss();
        }
    });
    dialogCustomChooser.show();

}

1

मैं वास्तव में यहां बहुत देर से आया हूं, लेकिन मेरा मानना ​​है कि आजकल हमारे पास व्हाट्सएप के माध्यम से संदेश भेजने के लिए छोटे और बेहतर समाधान हैं।

आप सिस्टम पिकर को कॉल करने के लिए निम्नलिखित का उपयोग कर सकते हैं, फिर आप जो भी चाहें साझा करने के लिए किस ऐप का उपयोग करेंगे।

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

यदि आपको वास्तव में व्हाट्सएप के माध्यम से भेजने की आवश्यकता है, तो आपको केवल निम्न करने की आवश्यकता है (आप सिस्टम पिकर को छोड़ देंगे)

 Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
    sendIntent.setType("text/plain");
    // Put this line here
    sendIntent.setPackage("com.whatsapp");
    //
    startActivity(sendIntent);

यदि आपको अधिक जानकारी चाहिए तो आप इसे यहां पा सकते हैं: WhatsApp FAQ


1

जैसा कि दस्तावेज़ीकरण कहता है कि आप केवल URL का उपयोग कर सकते हैं जैसे:

https://wa.me/15551234567

जहां E164 प्रारूप में अंतिम खंड संख्या है

Uri uri = Uri.parse("https://wa.me/15551234567");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

1
private fun sendWhatsappMessage(phoneNumber:String, text:String) {        
  val url = if (Intent().setPackage("com.whatsapp").resolveActivity(packageManager) != null) {
        "whatsapp://send?text=Hello&phone=$phoneNumber"
    } else {
        "https://api.whatsapp.com/send?phone=$phoneNumber&text=$text"
    }

    val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
    startActivity(browserIntent)
}

इसे हासिल करने का यह एक बहुत आसान तरीका है। यह कोड जांचता है कि क्या व्हाट्सएप डिवाइस पर इंस्टॉल है। यदि यह स्थापित है, तो यह सिस्टम पिकर को बायपास करता है और व्हाट्सएप पर संपर्क में आता है और चैट में टेक्स्ट को प्रीफ़िल्ड करता है। यदि स्थापित नहीं है, तो यह आपके वेब ब्राउज़र पर व्हाट्सएप लिंक खोलता है।


1

आप निम्नलिखित प्रारूप में एक URL का उपयोग करना चाहते हैं ...

https://api.whatsapp.com/send?text=text

फिर आपके पास वह पाठ हो सकता है जो भी आप चाहें। आपके पास फ़ोन नंबर निर्दिष्ट करने का विकल्प भी है ...

https://api.whatsapp.com/send?text=text&phone=1234

आप क्या नहीं कर सकते निम्नलिखित का उपयोग करें:

https://wa.me/send?text=text

तुम्हे मिल जाएगा...

हमें वह पृष्ठ नहीं मिला, जिसकी आप तलाश कर रहे थे

wa.meहालांकि, अगर आप फोन नंबर और टेक्स्ट दोनों की आपूर्ति करते हैं तो यह काम करेगा। लेकिन, अधिकांश भाग के लिए, यदि आप एक साझाकरण लिंक बनाने की कोशिश कर रहे हैं, तो आप वास्तव में फोन नंबर को इंगित नहीं करना चाहते हैं, क्योंकि आप चाहते हैं कि उपयोगकर्ता किसी का चयन करें। उस घटना में, यदि आप संख्या की आपूर्ति नहीं करते हैं और wa.meURL के रूप में उपयोग करते हैं, तो आपके सभी साझाकरण लिंक विफल हो जाएंगे। कृपया उपयोग करें app.whatsapp.com


0

इस कोड की जाँच करें,

    public void share(String subject,String text) {
     final Intent intent = new Intent(Intent.ACTION_SEND);

String score=1000;
     intent.setType("text/plain");
     intent.putExtra(Intent.EXTRA_SUBJECT, score);
     intent.putExtra(Intent.EXTRA_TEXT, text);

     startActivity(Intent.createChooser(intent, getString(R.string.share)));
}

0

यह मेरे लिए काम करता है:

public static void shareWhatsApp(Activity appActivity, String texto) {

    Intent sendIntent = new Intent(Intent.ACTION_SEND);     
    sendIntent.setType("text/plain");
    sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, texto);

    PackageManager pm = appActivity.getApplicationContext().getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(sendIntent, 0);
    boolean temWhatsApp = false;
    for (final ResolveInfo info : matches) {
      if (info.activityInfo.packageName.startsWith("com.whatsapp"))  {
          final ComponentName name = new ComponentName(info.activityInfo.applicationInfo.packageName, info.activityInfo.name);
          sendIntent.addCategory(Intent.CATEGORY_LAUNCHER);
          sendIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK);
          sendIntent.setComponent(name);
          temWhatsApp = true;
          break;
      }
    }               

    if(temWhatsApp) {
        //abre whatsapp
        appActivity.startActivity(sendIntent);
    } else {
        //alerta - você deve ter o whatsapp instalado
        Toast.makeText(appActivity, appActivity.getString(R.string.share_whatsapp), Toast.LENGTH_SHORT).show();
    }
}

0

उस संपर्क नंबर को प्राप्त करें जिसे आप संदेश भेजना चाहते हैं और व्हाट्सएप के लिए uri बनाना चाहते हैं, यहाँ c एक कर्सर है जो चयनित संपर्क को लौटाता है।

Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
i.setType("text/plain");
i.setPackage("com.whatsapp");           // so that only Whatsapp reacts and not the chooser
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT, "I'm the body.");
startActivity(i);

0

से प्रलेखन

पूर्व-भरे संदेश के साथ अपना लिंक बनाने के लिए जो स्वचालित रूप से किसी चैट के टेक्स्ट फ़ील्ड में दिखाई देगा, https://wa.me/whatsappphonenumber/?text=urlencodedtext का उपयोग करें जहां व्हाट्सएपफ़ोनटेनम्बर अंतर्राष्ट्रीय प्रारूप और URL में एक पूर्ण फोन नंबर है। -encodedtext URL-एन्कोडेड पूर्व-भरा संदेश है।

उदाहरण: https://wa.me/15551234567?text=I 'm% 20interested% 20in% 20your% 20car% 20for% 20sale

कोड उदाहरण

val phoneNumber = "13492838472"
    val text = "Hey, you know... I love StackOverflow :)"
    val uri = Uri.parse("https://wa.me/$phoneNumber/?text=$text")
    val sendIntent = Intent(Intent.ACTION_VIEW, uri)
    startActivity(sendIntent)

-1

निम्नलिखित एपीआई को c ++ में उपयोग किया जा सकता है जैसा कि मेरे लेख में दिखाया गया है ।

आपको कई स्थिरांक परिभाषित करने की आवश्यकता है:

//
#define    GroupAdmin                <YOUR GROUP ADMIN MOBILE PHONE>
#define GroupName                <YOUR GROUP NAME>
#define CLIENT_ID                <YOUR CLIENT ID>
#define CLIENT_SECRET            <YOUR CLIENT SECRET>

#define GROUP_API_SERVER        L"api.whatsmate.net"
#define GROUP_API_PATH          L"/v3/whatsapp/group/text/message/12"
#define IMAGE_SINGLE_API_URL    L"http://api.whatsmate.net/v3/whatsapp/group/image/message/12"

//

फिर आप एपीआई के समापन बिंदु से कनेक्ट करें।

hOpenHandle = InternetOpen(_T("HTTP"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hOpenHandle == NULL)
{
    return false;
}

hConnectHandle = InternetConnect(hOpenHandle,
    GROUP_API_SERVER,
    INTERNET_DEFAULT_HTTP_PORT,
    NULL, NULL, INTERNET_SERVICE_HTTP,
    0, 1);

if (hConnectHandle == NULL)
{
    InternetCloseHandle(hOpenHandle);
    return false;
}

फिर हेडर और बॉडी दोनों को भेजें और उस परिणाम की प्रतीक्षा करें जो "ओके" होना चाहिए।

चरण 1 - एक HTTP अनुरोध खोलें:

const wchar_t *AcceptTypes[] = { _T("application/json"),NULL };
HINTERNET hRequest = HttpOpenRequest(hConnectHandle, _T("POST"), GROUP_API_PATH, NULL, NULL, AcceptTypes, 0, 0);

if (hRequest == NULL)
{
    InternetCloseHandle(hConnectHandle);
    InternetCloseHandle(hOpenHandle);
    return false;
}

चरण 2 - शीर्ष लेख भेजें:

std::wstring HeaderData;

HeaderData += _T("X-WM-CLIENT-ID: ");
HeaderData += _T(CLIENT_ID);
HeaderData += _T("\r\nX-WM-CLIENT-SECRET: ");
HeaderData += _T(CLIENT_SECRET);
HeaderData += _T("\r\n");
HttpAddRequestHeaders(hRequest, HeaderData.c_str(), HeaderData.size(), NULL);

चरण 3 - संदेश भेजें:

std::wstring WJsonData;
WJsonData += _T("{");
WJsonData += _T("\"group_admin\":\"");
WJsonData += groupAdmin;
WJsonData += _T("\",");
WJsonData += _T("\"group_name\":\"");
WJsonData += groupName;
WJsonData += _T("\",");
WJsonData += _T("\"message\":\"");
WJsonData += message;
WJsonData += _T("\"");
WJsonData += _T("}");

const std::string JsonData(WJsonData.begin(), WJsonData.end());

bResults = HttpSendRequest(hRequest, NULL, 0, (LPVOID)(JsonData.c_str()), JsonData.size());

अब बस परिणाम की जाँच करें:

TCHAR StatusText[BUFFER_LENGTH] = { 0 };
DWORD StatusTextLen = BUFFER_LENGTH;
HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_TEXT, &StatusText, &StatusTextLen, NULL);
bResults = (StatusTextLen && wcscmp(StatusText, L"OK")==FALSE);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.