从 Whatsapp 地址获取联系人姓名

Posted

技术标签:

【中文标题】从 Whatsapp 地址获取联系人姓名【英文标题】:Get contact name from Whatsapp addess 【发布时间】:2017-03-28 02:59:41 【问题描述】:

我有来自 Whatsapp 的联系信息:491766465xxxx@s.whatsapp.net

从此代码获得

void startWhatsAppContactPicker() 
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setPackage("com.whatsapp");
        try 
            startActivityForResult(intent, REQUEST_CODE_PICK_WHATSAPP);
         catch (Exception e) 
            Toast.makeText(this, "Kein Whatsapp installiert", Toast.LENGTH_SHORT).show();
        
    


  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) 
            case REQUEST_CODE_PICK_WHATSAPP:
                if (resultCode == RESULT_OK) 
                    if (data.hasExtra("contact")) 
                        String address = data.getStringExtra("contact");
                        Log.d(TAG, "The selected Whatsapp address is: " + address);
                  
                
                break;
            default:
                break;
        
    

输出:49176646xxxx@s.whatsapp.net

这些信息是否存储在 android 联系人中?

我需要联系人来获取所有者的姓名。

我已经尝试过了,但没有成功:

How to get whatsapp Contacts from Android?

干杯

【问题讨论】:

【参考方案1】:

假设49176646xxxx 段是电话号码,您可以在电话联系人中搜索该电话号码:

String address = data.getStringExtra("contact");
String phone = address.split("@")[0];
String[] projection = new String[] Phone.DISPLAY_NAME, Phone.NUMBER, Phone.NORMALIZED_NUMBER ;
String selection = Phone.NORMALIZED_NUMBER + " = " + phone;
Cursor c = cr.query(Phone.CONTENT_URI, projection, selection, null, null);
if (c != null && c.moveToFirst()) 
   Log.d(TAG, "name is: " + c.getString(0));

(注意:Phone.NORMALIZED_NUMBER 已添加到 API 16)

【讨论】:

以上是关于从 Whatsapp 地址获取联系人姓名的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 4 + WhatsApp 分享 - 在我分享我的信息后获取接收者/联系方式

从联系 Swift 获取街道地址

如何从联系人列表中获取电子邮件地址?

如何获取在whatsapp或android中其他应用程序中使用的联系人

Android 获取联系人手机号码姓名地址公司邮箱生日

如何获取联系人/电话号码的“提供者”(skype/whatsapp/google)