【问题标题】:Extract contact phone number by name按姓名提取联系电话号码
【发布时间】:2013-07-30 20:59:43
【问题描述】:

我试图通过他的名字获取联系人的电话号码,(名字是一个字符串),有人知道怎么做吗? 谢谢!

【问题讨论】:

    标签: java android android-contacts


    【解决方案1】:

    这应该对您有所帮助;将 People.NAME 替换为您想要的名称。

        String[] projection = new String[]{
                People.NAME,
                People.NUMBER
             };
    
        Cursor c = ctx.getContentResolver().query(People.CONTENT_URI, projection,
        null, null, People.NAME + " ASC");
        c.moveToFirst();
        int nameCol = c.getColumnIndex(People.NAME);
        int numCol = c.getColumnIndex(People.NUMBER);
    
        int nContacts = c.getCount();
        do{
            // Do your work here
        } while(c.moveToNext());
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      应该适合你。 返回分配给此联系人的所有号码的列表

         public static List<String> getContactByName(Context context,
               String name) {
               String[] mProjection = {
                     ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                     ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
                     ContactsContract.CommonDataKinds.Phone.NUMBER };
      
               Cursor cursor = context.getContentResolver().query(
                     ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                     mProjection,
                     ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " LIKE '%"
                           + name + "%'", null, null);
      
               List<String> listOfPhonesAssignedToThisName = new ArrayList<String>();
               while(cursor.moveToNext()){
                  listOfPhonesAssignedToThisName.add(cursor.getString(cursor.getColumnIndexOrThrow("DISPLAY_NAME")));
               }
               return listOfPhonesAssignedToThisName;
         }
      

      注意: 此功能会比较所有看起来 LIKE 您的显示名称的内容。 如果您想找到完全合适的人,您需要调整部分:

      ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + "LIKE '%" + 名称 + "%'", null, null);

      到: ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + "LIKE '" + 名称 + "'", null, null);

      【讨论】:

        猜你喜欢
        • 2015-06-01
        • 1970-01-01
        • 2021-05-14
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        相关资源
        最近更新 更多