Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách gửi tin nhắn qua WhatsApp trên Android

Giới thiệu

Hướng dẫn mở WhatsApp với nội dung tin nhắn được điền sẵn (pre-filled) bằng Intent.ACTION_SEND. Người dùng chỉ cần chọn người nhận và bấm gửi.

Yêu cầu

  • WhatsApp đã cài đặt trên thiết bị.
  • Quyền INTERNET (đã có mặc định).

Các bước thực hiện

Bước 1: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="24dp">

    <EditText
        android:id="@+id/etMessage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Nội dung tin nhắn"
        android:inputType="textMultiLine"
        android:minHeight="120dp"
        android:padding="12dp" />

    <Button
        android:id="@+id/btnSendWhatsApp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Gửi qua WhatsApp" />

</LinearLayout>

Bước 2: MainActivity.java

package com.example.myapplication;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText etMessage;
    Button btnSend;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etMessage = findViewById(R.id.etMessage);
        btnSend = findViewById(R.id.btnSendWhatsApp);

        btnSend.setOnClickListener(v -> sendWhatsAppMessage());
    }

    private void sendWhatsAppMessage() {
        String message = etMessage.getText().toString().trim();
        if (message.isEmpty()) {
            Toast.makeText(this, "Vui lòng nhập tin nhắn", Toast.LENGTH_SHORT).show();
            return;
        }

        // Kiểm tra WhatsApp đã cài chưa
        if (!isWhatsAppInstalled()) {
            Toast.makeText(this, "WhatsApp chưa được cài đặt", Toast.LENGTH_LONG).show();
            openPlayStore("com.whatsapp");
            return;
        }

        // Tạo Intent gửi tin nhắn
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.setPackage("com.whatsapp"); // Chỉ mở WhatsApp, không hiện chooser
        intent.putExtra(Intent.EXTRA_TEXT, message);

        try {
            startActivity(intent);
        } catch (Exception e) {
            Toast.makeText(this, "Lỗi mở WhatsApp: " + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    private boolean isWhatsAppInstalled() {
        PackageManager pm = getPackageManager();
        try {
            pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

    private void openPlayStore(String packageName) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName));
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }
}

Chạy ứng dụng

  1. Nhấn Run → nhập tin nhắn → nhấn "Gửi qua WhatsApp".
  2. WhatsApp mở ra → chọn người nhận (hoặc nhóm) → bấm gửi.

Cách gửi tin nhắn qua WhatsApp trên Android

Cách gửi tin nhắn qua WhatsApp trên Android

Mở rộng: Gửi đến số điện thoại cụ thể (Click to Chat)

WhatsApp hỗ trợ liên kết wa.me để mở chat trực tiếp với số điện thoại:

// Số điện thoại định dạng quốc tế (không có +, không có 0 đầu)
String phone = "84901234567"; // VN: +84 90 123 4567
String url = "https://wa.me/" + phone + "?text=" + Uri.encode(message);

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);

Cách này không cần setPackage, mở được trên trình duyệt hoặc app WhatsApp.

Gửi media (hình ảnh, video, file)

// Gửi hình ảnh
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.setPackage("com.whatsapp");
intent.putExtra(Intent.EXTRA_STREAM, imageUri); // Uri của file ảnh
startActivity(intent);

Lưu ý

  • WhatsApp Business: package name là com.whatsapp.w4b.
  • Intent chooser: Bỏ setPackage() để người dùng chọn app chia sẻ (WhatsApp, Messenger, Email...).
  • Độ dài tin nhắn: WhatsApp giới hạn ~4096 ký tự.