Android: How to send message programmatically by using WhatsApp, WeChat?

前端 未结 5 1542
情歌与酒
情歌与酒 2020-12-02 17:58

How to use messaging in android application by using WhatsApp and WeChat?

Actually requirement is to send sms using WhatsApp and We

相关标签:
5条回答
  • 2020-12-02 18:13

    you can try one of these two solutions they worked for me.

    reference: https://faq.whatsapp.com/en/android/26000030/?category=5245251

    private void openWhatsApp(String countryCode, String mobile) {
        String customerPhoneNumber = String.format("%s%s", countryCode, mobile);
        Uri uri = Uri.parse("smsto:" + customerPhoneNumber);
        Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
        sendIntent.setPackage("com.whatsapp");
    
        if(sendIntent.resolveActivity(getPackageManager()) == null){
            showDialogMessage("you should install whatsapp.");
            return;
        }
    
        startActivity(sendIntent);
    }
    
    or
    
    private void openWhatsApp(String countryCode, String mobile) {
        String customerPhoneNumber = String.format("%s%s", countryCode, mobile);
        Intent sendIntent = new Intent(Intent.ACTION_VIEW);
        sendIntent.setPackage("com.whatsapp");
    // you can remove this part ("&text=" + "your message")
        String url = "https://api.whatsapp.com/send?phone=" + customerPhoneNumber + "&text=" + "your message"; 
        sendIntent.setData(Uri.parse(url));
    
        if(sendIntent.resolveActivity(getPackageManager()) == null){
            showDialogMessage("you should install whatsapp.");
            return;
        }
    
        startActivity(sendIntent);
    }
    
    0 讨论(0)
  • 2020-12-02 18:14

    This should help to send message using whatsapp:

    public void sendWhatsAppMsg() {
    
        Intent waIntent = new Intent(Intent.ACTION_SEND);
        waIntent.setType("text/plain");
                String text = "testing message";
        waIntent.setPackage("com.whatsapp");
        if (waIntent != null) {
            waIntent.putExtra(Intent.EXTRA_TEXT, text);//
            startActivity(Intent.createChooser(waIntent, text));
        } else {
            Toast.makeText(this, "WhatsApp not found", Toast.LENGTH_SHORT)
                    .show();
        }
    
    }
    
    0 讨论(0)
  • 2020-12-02 18:19

    I got the Solution.. Here I am posting the answer so that it may help other people who may have same doubt..

    For Share through any application...

    public void sendAppMsg(View view) {
    
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        String text = " message you want to share..";
        // change with required  application package  
    
        intent.setPackage("PACKAGE NAME OF THE APPLICATION");
        if (intent != null) {
            intent.putExtra(Intent.EXTRA_TEXT, text);//
            startActivity(Intent.createChooser(intent, text));
        } else {
    
            Toast.makeText(this, "App not found", Toast.LENGTH_SHORT)
                    .show();
        }
    }
    

    Note : change *PACKAGE NAME OF THE APPLICATION as per your requirement like

    Example : USE

    //Whatsapp
        intent.setPackage("com.whatsapp");`
    
    //Linkedin
        intent.setPackage("com.linkedin.android");
    
    //Twitter    
        intent.setPackage("com.twitter.android");
    
    //Facebook
        intent.setPackage("com.facebook.katana");
    
    //GooglePlus
        intent.setPackage("com.google.android.apps.plus");
    
    0 讨论(0)
  • 2020-12-02 18:21

    To send direct message to any whatsapp user use following code :

    private void sendMessageToWhatsAppContact(String number) {
        PackageManager packageManager = context.getPackageManager();
        Intent i = new Intent(Intent.ACTION_VIEW);
        try {
            String url = "https://api.whatsapp.com/send?phone=" + number + "&text=" + URLEncoder.encode(CommonStrings.SHARING_APP_MSG, "UTF-8");
            i.setPackage("com.whatsapp");
            i.setData(Uri.parse(url));
            if (i.resolveActivity(packageManager) != null) {
                context.startActivity(i);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    0 讨论(0)
  • 2020-12-02 18:25

    This is the simplest example that I get

    /**
     * sends message to the specific application
     * @param text The message that user wants to send
     * @param view is the activity view of the application
     */
    public void sendMessage(String text, View view){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setType("text/plain");
        intent.setPackage("com.example.appname");//For whatsapp you can use com.whatsapp
        if (intent !=null){
            intent.putExtra(Intent.EXTRA_TEXT, text);
            startActivity(intent);
        }else{
            Snackbar.make(this, "Application not found.", Snackbar.LENGTH_SHORT).show();
        }
    }
    
    0 讨论(0)
提交回复
热议问题