2014-01-17 176 views
1

我想从我的应用程序中选择一个联系人的WhatsApp地址,但考虑到我的应用程序是WhatsApp的util,我希望用户继续使用本地方式选择联系人,这样他们就赢得了 我们不需要习惯新的做法,这对我们大多数人来说都很烦人。如何使用Whatsapp的本地联系人选择器从Whatsapp中选择联系人地址?

我做了一些研究,我所知道的一样Send text to specific contact (whatsapp)Sending message through WhatsApp, 链接并在网站其他一些问题和答案,但他们不使用的WhatsApp的联系人选择器。

希望你能帮上忙。

回答

5

在玩了很长一段时间之后,我意识到我们可以启动Whatsapp的联系人选择器活动并返回结果,但不会返回到返回的uri(Android联系人选择器的方式),而是作为额外的。 我想出了以下解决方案。

要启动的WhatsApp的本地联系人挑选我们所说的从我们的活动如下代码:

Intent intent = new Intent(Intent.ACTION_PICK); 
    intent.setPackage("com.whatsapp"); 
    try{ 
     startActivityForResult(intent, REQUEST_CODE_PICK_WHATSAPP); 
    } catch (Exception e) { 
     Toast.makeText(MainActivity.this, R.string.notif_no_whatsapp, Toast.LENGTH_SHORT).show(); //no activity found to handle this intent means whatsapp is not installed 
    } 

然后,内部活动的onActivityResult(...)方法:

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

    switch (requestCode) { 
    case REQUEST_CODE_PICK_WHATSAPP: 
     if(resultCode == RESULT_OK){ 
      if(intent.hasExtra("contact")){ 
       String address = intent.getStringExtra("contact"); 
       Log.d(TAG, "The selected Whatsapp address is: "+address); 
      } 
     } 
     break; 

    default: 
     break; 
    } 
} 

希望它有助于使更多的应用程序与WhatsApp无缝集成。

+0

你知道如何分享内容并找回地址吗? –

+0

我不明白这个问题。你能更具体地描述你想做什么吗? –

+0

无所谓,我试图通过Action.sendto发送消息并检索选定用户的ID,但已解决。 –

相关问题