首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过whatsapp分享

通过whatsapp分享
EN

Stack Overflow用户
提问于 2014-10-01 13:59:28
回答 1查看 1.2K关注 0票数 1

我想通过whatsapp从我的应用程序发送一条短信。

当我通过whatsapp向联系人页面发送分享请求时,我不知道接收者是谁。

我怎么知道选择了哪一个联系人?

这是我用来共享的代码:

代码语言:javascript
复制
public void clickHandler(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);
        startActivityForResult(Intent.createChooser(waIntent, "Share with"),1);

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

}

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d("whatsapp","requestCode:"+requestCode + " resultCode:"+resultCode+ " intent:"+data);
}

10-01 16:57:46.910: D/whatsapp(13522): requestCode:1 resultCode:0 intent:null
EN

回答 1

Stack Overflow用户

发布于 2014-10-01 14:28:32

您想要实现的是您共享的特定应用程序(在您的情况下是WhatsApp),必须在其应用程序中进行编码,如果它们不实现此功能,您将无法实现它。安卓系统上的每一个startActivityForResult都是如此。如果应用程序没有编码来返回数据,那就意味着你不能拥有这些数据。

要检查是否实现了任何应用程序,最好的方法就是调查它返回的对象的内容。

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

在代码中放置一个断点,放在上面的行和调试会话上,检查data参数的内容。检查Bundle中由getExtras()返回的所有键和值,还检查意图操作。

正如你对你的问题所指出的

D/whatsapp(13522):requestCode:1个结果代码:0意图:null

这意味着应用程序不会返回任何数据,您想要的也是不可能的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26143205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档