如何从电话号码中检索 ID?

Posted

技术标签:

【中文标题】如何从电话号码中检索 ID?【英文标题】:How do you retrieve an ID from a phone number? 【发布时间】:2011-05-14 10:03:12 【问题描述】:

我正在尝试检索 电话 号码,因此使用

String addrWhere = Contacts.Phones.NUMBER + " = " + userNumber;
  String id = "";
  Cursor c = mContext.getContentResolver().query(
    Contacts.Phones.CONTENT_URI,
    new String[]  Contacts.Phones._ID , addrWhere, null, null);
  try 
   if (c.getCount() > 0) 
    c.moveToFirst();
    id = c.getString(0);
    Log.i("IDS", id);
   
   finally 
   c.close();
  
  return id;

谁能告诉我我在这方面的错误?

【问题讨论】:

【参考方案1】:

尝试How to query ContactsContract.CommonDataKinds.Phone on android? 的解决方案,即ContactsContract.PhoneLookup 提供者的用法:

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
resolver.query(uri, new String[]PhoneLookup.DISPLAY_NAME,...

【讨论】:

请引用相关位,而不仅仅是一个链接(绝对包含链接,但引用):meta.stackexchange.com/questions/8231/…【参考方案2】:

大家好... 谢谢你的答复!!! @索塔帕纳 好吧,我找到了 Sotapanna 指出的答案

为需要的人粘贴工作代码!

private String findID(String userNumber) 
        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri
                .encode(userNumber));
        int id = 0;
        String[] returnVals = new String[]  PhoneLookup._ID ;
        Cursor pCur = mContext.getContentResolver().query(uri, returnVals,
                PhoneLookup.NUMBER + " = \"" + userNumber + "\"", null, null);
        if (pCur.getCount() > 0) 
            pCur.moveToFirst();
            id = pCur.getColumnCount();
            if (id >= 0) 
                id = pCur.getInt(0);
            
        

        Log.i("Contacts", "" + id);
        return String.valueOf(id);
    

【讨论】:

以上是关于如何从电话号码中检索 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振从firebase中检索电话号码

从android中的电话簿中检索whatsapp联系人

从手机的电话簿中检索联系人

无法从 ListView 项中检索 Intent 的地址和电话号码

android获取联系人图片、姓名和手机号码

安卓。通过电话号码从通讯录中检索名字和姓氏