向未保存的号码发送 Whatsapp 消息

Ian*_*eck 1 android whatsapp

我正在尝试向特定号码发送 whatsapp 消息,而无需保存该联系人。

这是我的代码

 try {
    Uri uri = Uri.parse("smsto: " + smsNumber);
    //Timber.e("smsNumber %s", uri.toString());
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.setPackage("com.whatsapp");
    startActivity(Intent.createChooser(i, ""));

} catch (Exception e) {
    Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

以及我从中得到的信息

这就是我得到的

小智 5

在这里试试这个。这帮助了我

private void openWhatsApp() {
    String smsNumber = "+26377*********";
    boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");
    if (isWhatsappInstalled) {

        Intent sendIntent = new Intent("android.intent.action.MAIN");
        sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
        sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(smsNumber) + "@s.whatsapp.net");//phone number without "+" prefix

        startActivity(sendIntent);
    } else {
        Uri uri = Uri.parse("market://details?id=com.whatsapp");
        Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
        Toast.makeText(this, "WhatsApp not Installed",
                Toast.LENGTH_SHORT).show();
        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;
}
Run Code Online (Sandbox Code Playgroud)