एंड्रॉइड में व्हाट्सएप के माध्यम से संदेश भेजना
यह गाइड दिखाता है कि ACTION_SEND इंटेंट का उपयोग करके टेक्स्ट/मीडिया को व्हाट्सएप पर कैसे साझा किया जाए, जिसमें ऐप-इंस्टॉल जांच और फॉलबैक शामिल है।
बुनियादी कार्यान्वयन
public void sendWhatsAppMessage(String phoneNumber, String message) {
// phoneNumber वैकल्पिक: "91XXXXXXXXXX" प्रारूप (देश कोड, कोई + नहीं)
try {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.setPackage("com.whatsapp"); // केवल व्हाट्सएप तक सीमित
if (!TextUtils.isEmpty(phoneNumber)) {
intent.putExtra("jid", phoneNumber + "@s.whatsapp.net"); // विशिष्ट चैट खोलता है
}
intent.putExtra(Intent.EXTRA_TEXT, message);
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "व्हाट्सएप इंस्टॉल नहीं है", Toast.LENGTH_SHORT).show();
// वैकल्पिक: Play Store खोलें
// startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.whatsapp")));
}
}
चयनकर्ता के साथ उपयोग (उपयोगकर्ता को संपर्क चुनने दें)
public void shareViaWhatsApp(String text) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, text);
// setPackage न लगाएं — चयनकर्ता दिखाता है, उपयोगकर्ता व्हाट्सएप चुनता है
startActivity(Intent.createChooser(intent, "व्हाट्सएप के माध्यम से साझा करें"));
}
मीडिया (इमेज/वीडियो/डॉक्यूमेंट) साझा करना
public void sendWhatsAppMedia(Uri mediaUri, String mimeType, String caption) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(mimeType); // "image/*", "video/*", "application/pdf"
intent.setPackage("com.whatsapp");
intent.putExtra(Intent.EXTRA_STREAM, mediaUri);
if (caption != null) intent.putExtra(Intent.EXTRA_TEXT, caption);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "व्हाट्सएप इंस्टॉल नहीं है", Toast.LENGTH_SHORT).show();
}
}
WhatsApp Business / व्हाट्सएप वेब
- WhatsApp Business: पैकेज
com.whatsapp.w4b। - व्हाट्सएप वेब:
https://wa.me/URL के साथ?text= ACTION_VIEWका उपयोग करें।
पूर्ण UI उदाहरण
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="24dp">
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="फोन (वैकल्पिक, देश कोड सहित)"
android:inputType="phone" />
<EditText
android:id="@+id/etMessage"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_marginTop="12dp"
android:hint="संदेश"
android:gravity="top" />
<Button
android:id="@+id/btnSend"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="व्हाट्सएप पर भेजें" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText etPhone = findViewById(R.id.etPhone);
EditText etMsg = findViewById(R.id.etMessage);
Button btn = findViewById(R.id.btnSend);
btn.setOnClickListener(v -> {
String phone = etPhone.getText().toString().trim();
String msg = etMsg.getText().toString().trim();
if (msg.isEmpty()) {
Toast.makeText(this, "संदेश दर्ज करें", Toast.LENGTH_SHORT).show();
return;
}
sendWhatsAppMessage(phone, msg);
});
}
// sendWhatsAppMessage विधि यहां...
}
सामान्य समस्याएं
| समस्या | समाधान |
|---|---|
| चयनकर्ता में व्हाट्सएप दिखाई नहीं देता | सुनिश्चित करें कि setType("text/plain") सेट है; कुछ डिवाइसों पर setPackage चयनकर्ता को बायपास करता है। |
| फोन नंबर पैरामीटर अनदेखा किया गया | jid एक्स्ट्रा अनौपचारिक है; कुछ संस्करणों पर काम नहीं कर सकता। विश्वसनीय डीप लिंकिंग के लिए https://wa.me/ का उपयोग करें। |
| मीडिया नहीं भेजा गया | FLAG_GRANT_READ_URI_PERMISSION और FileProvider (ऐप-विशिष्ट फ़ाइलों के लिए) का उपयोग करें। |
मूल उदाहरण की समीक्षा
मूल कोड PackageManager.getPackageInfo का उपयोग इंस्टॉल जांच के लिए करता था (धीमा, अनावश्यक), हार्डकोडेड "YOUR TEXT HERE", और कोई फॉलबैक UI नहीं था। ऊपर दिया गया संस्करण मानक ActivityNotFoundException पैटर्न, वैकल्पिक फोन नंबर, और मीडिया सपोर्ट का उपयोग करता है।