2014-10-01 93 views
0

我想通过我的应用程序通过whatsapp发送短信。通过whatsapp分享

我不知道谁是我的收件人是当我发送请求通过whatsapp分享我被引导到联系人页面。

如何知道选择了哪个联系人?

这是我使用的共享代码:

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(); 
    } 

}

@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 
+0

为什么你想知道哪个联系人被选中?该应用程序会自动发送消息到该联系人,这是你想要的,我猜。 – 2014-10-01 14:07:30

+0

我想通过whatsapp与另一个用户分享信息,这个用户可能不是我的应用用户,如果是这样的话,我希望当这个用户注册我的应用时,能够给他的内容已被共享。并为此我需要标记此用户 – 2014-10-01 14:11:03

+0

如果您的onActivityResult不触发,那么没有办法检索这个,因为whatsApp没有编码。 – 2014-10-01 14:13:17

回答

2

你想达到什么样的东西,你要共享到(WhatsApp的具体应用程式情况)必须在他们的应用中编码,如果他们没有实现这个功能,你将无法实现它。 Android上的每个单独的startActivityForResult都是如此。如果应用程序未编码以返回数据,则表示您无法获得该数据。

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

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

把一个破发点在你的代码在上面的线和调试会话检查data参数的内容。检查由getExtras()返回的Bundle内的所有键和值,并检查意图操作是什么。

当你对你的提问时指出

d/WhatsApp的(13522):requestCode:1 resultCode为:0目的:空

这意味着没有数据是通过什么程序,什么返回你想要的是不可能的。