127

whatsappがこれをサポートしていないことを伝えるいくつかの古い投稿を見つけたので、何かが変更されたのではないかと思っていました。意図を介して送信している番号でwhatsappの「チャット」を開く方法があるのでしょうか?

4

25 に答える 25

192

更新https://faq.whatsapp.com/en/android/26000030/?category=5245251 を参照してください

WhatsApp の Click to Chat 機能を使用すると、携帯電話のアドレス帳に電話番号を保存しなくても、誰かとチャットを開始できます。この人の電話番号を知っている限り、チャットを開始できるリンクを作成できます。

使用: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も参照してください。

于 2013-04-10T16:25:39.010 に答える
17

これは、Whatsapp がインストールされているかどうかにかかわらず機能するはずです。

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;
}
于 2014-10-13T07:39:11.637 に答える
10

マシュマロ 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); 

whatsappがインストールされていない場合、これは例外をスローし、 whatsappに電話番号が不明な場合、SMSまたは単純なSMSメッセージを介して招待を送信することを提案します。

于 2016-10-22T11:56:56.263 に答える
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.");
}
于 2014-09-03T10:47:18.283 に答える
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)));
}
于 2013-03-19T10:36:14.627 に答える
0

メッセージを送信する連絡先番号を取得し、whatsapp の 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);
于 2018-06-16T04:22:19.893 に答える
0

これは、Kotlinで最終的に機能しました:

private fun navigateToWhatsApp() {
        try {
            val url = "https://api.whatsapp.com/send?phone=+91${getString(R.string.contact)}"
            startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)).setPackage("com.whatsapp"))
        } catch (e: Exception) {
            showToast("Whatsapp app not installed in your device")
        }
    }
于 2021-04-14T15:54:07.260 に答える