Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android開発】WhatsAppを使ってメッセージを送信する方法を解説

この記事では、AndroidアプリからWhatsAppを起動してメッセージを送信する方法を、サンプルコード付きでわかりやすく解説します。Intent(インテント)を使ったシンプルな実装なので、Androidアプリ開発の初心者の方でもすぐに試せます。

実装の全体像

今回作成するのは、画面上のテキストをタップすると、WhatsAppが起動して指定したテキストを共有できるというシンプルなアプリです。処理の流れは以下の通りです。

  • PackageManagerで端末にWhatsAppがインストールされているかを確認
  • ACTION_SENDインテントを使って共有用のテキストを渡す
  • WhatsAppが未インストールの場合はToastで通知

ステップ1:新規プロジェクトを作成する

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成しましょう。

ステップ2:レイアウトファイル(activity_main.xml)を編集する

次に、res/layout/activity_main.xmlに以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="click"
        android:textSize="30sp" />
</LinearLayout>

このコードでは、画面中央に「click」と表示されるTextViewを1つ配置しています。このTextViewをタップするとWhatsAppが起動する仕組みです。

ステップ3:MainActivity.javaを実装する

続いて、src/MainActivity.javaに以下のコードを記述します。

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    TextView textView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PackageManager pm = MainActivity.this.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);
                    waIntent.setPackage("com.whatsapp");
                    waIntent.putExtra(Intent.EXTRA_TEXT, text);
                    startActivity(Intent.createChooser(waIntent, "Share with"));
                } catch (PackageManager.NameNotFoundException e) {
                    Toast.makeText(MainActivity.this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                            .show();
                }
            }
        });
    }
}

コードのポイント

  • WhatsAppのインストール確認: pm.getPackageInfo("com.whatsapp", ...)で、端末にWhatsAppがインストールされているかどうかをチェックしています。
  • 共有テキストの設定: 変数textに送信したいメッセージを設定し、putExtra(Intent.EXTRA_TEXT, text)でインテントに渡します。
  • エラー処理: WhatsAppがインストールされていない場合は、NameNotFoundExceptionが発生するため、Toastで「WhatsApp not Installed」と表示してユーザーに知らせます。

アプリを実行して動作を確認する

それでは、アプリを実行してみましょう。実際のAndroid端末をパソコンに接続していることを前提に説明します。Android Studioからプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。接続したモバイル端末を選択すると、端末に以下のような初期画面が表示されます。

【Android開発】WhatsAppを使ってメッセージを送信する方法を解説

次に、画面上のTextViewをタップしてみてください。WhatsAppが起動し、設定したテキストを共有する画面が開きます。

【Android開発】WhatsAppを使ってメッセージを送信する方法を解説

まとめ

このように、ACTION_SENDインテントとパッケージ名「com.whatsapp」を指定するだけで、少ないコード量でAndroidアプリからWhatsAppへのメッセージ共有機能を実装できます。ぜひ実際のプロジェクトでも活用してみてください。

  1. 【Android】WhatsAppメッセージを予約送信する方法|無料アプリ「SQEDit」の使い方を解説

    WhatsAppは、従来のSMSなどのメッセージング手段をほぼ置き換える存在となりました。豊富な機能に加えて、安全性が高く信頼でき、基本無料で使える点が大きな魅力です。ビデオ通話の需要が高まる中、WhatsAppも無料の音声通話・ビデオ通話機能を提供するようになりました。 そんなWhatsAppには、メッセージを指定した日時に自動送信できる「予約送信」機能への要望が多く寄せられています。しかし残念ながら、現時点でWhatsApp公式がこの機能を提供していないため、サードパーティ製アプリを活用するのが現実的な解決策となります。 関連記事:Android・iOS版WhatsAppでGIF画像を送信

  2. Android版WhatsAppの指紋認証ロック機能とは?設定方法を徹底解説

    指紋認証ロックは、スマートフォンとともに登場して久しい機能ですが、近年では低価格帯の端末にも標準搭載されるようになり、その利用は急速に広がっています。生体認証でスマホのプライバシーを守りたいと考えるユーザーが増えており、Android端末を指紋でロックできるアプリも数多く存在します。パスワードやPINコードは覗き見されて不正アクセスされる恐れがありますが、指紋認証ならその心配がありません。WhatsAppの指紋認証ロックアップデートにより、さらに安心感が高まります。 世界中の多くの人々がコミュニケーション手段として選んでいるWhatsAppは、端末内のどのアプリよりも強固なロックが必要です。ス