如何在我的Android应用程序中使用WhatsApp?

6
这是我调用短信应用程序的方式:
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
            sendIntent.putExtra("sms_body", "The SMS text"); 
            sendIntent.setType("vnd.android-dir/mms-sms");

            startActivity(sendIntent);   

我该如何通过 Twitter/Whatsapp/Facebook 发送消息?在 mms-sms 的位置应该写什么?我没有找到相关的文档。

你的接受率真的很低。如果你想让别人回答你的问题,它需要更高。 - Ollie C
4个回答

8
我找不到直接调用Facebook/Twitter的方法,但你可以调用android.content.Intent.ACTION_SEND并让用户选择应用程序。

Android ACTION_SEND intent

Intent i = new Intent(android.content.Intent.ACTION_SEND);

i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT, "Message body");

startActivity(Intent.createChooser(i, "Share dialog title"));

然而,使用此方法通过Facebook分享时可能会出现错误。更多信息请参见:Android Facebook Intent

尝试过这个,它只显示电子邮件而没有显示直接消息选项,在对话框中的其他聊天应用程序,如何显示它们。 - user2581076

2
    public void onClickWhatsApp(View view) {
     try {
        Intent waIntent = new Intent(Intent.ACTION_SEND);
        waIntent.setType("text/plain");
                String text = "YOUR TEXT HERE";
        waIntent.setPackage("com.whatsapp");
        if (waIntent != null) {
            waIntent.putExtra(Intent.EXTRA_TEXT, text);//
            startActivity(Intent.createChooser(waIntent, "Share with"));
        } else {
            Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                    .show();
        }} catch (NameNotFoundException e) {
        Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
                .show();
   }  

    }

1
不检查WhatsApp是否已安装。请参见https://dev59.com/6WUp5IYBdhLWcg3wLVKn - 0101100101
我已经编辑了我的回答。现在它会检查WhatsApp是否已安装。 - krishan

0
Intent i = new Intent(Intent.ACTION_SEND);
i.setPackage("com.whatsapp");
i.putExtra("chat",true);
i.setType("text/plain");
startActivity(i);

0
您可以使用以下代码片段: 对于WhatsApp:
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();
   }  
}

Twitter相关:

void shareOnTwitter()
{
    PackageManager pm=getPackageManager();
    try {
        Intent waIntent = new Intent(Intent.ACTION_SEND);
        waIntent.setType("text/plain");
        String text = "Insert Tweet Here";

        @SuppressWarnings("unused")
        PackageInfo info=pm.getPackageInfo("com.twitter.android", PackageManager.GET_META_DATA);
        //Check if package exists or not. If not then code 
        //in catch block will be called
        waIntent.setPackage("com.twitter.android");

        waIntent.putExtra(Intent.EXTRA_TEXT, text);
        startActivity(Intent.createChooser(waIntent, "Share with"));

    } catch (NameNotFoundException e) {
        Toast.makeText(this, "Twitter not Installed", Toast.LENGTH_SHORT)
        .show();
        return ;
    }  
    return ;    
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接