读取android中的联系人

时间:2012-01-27 04:49:28

标签: android android-contacts

是否可以从我的应用程序中的联系人列表中读取多个联系人。 我发现的是如何接收联系人列表并在列表中循环。

How to read contacts on Android 2.0

但是可以从contacts列表中选择其中一些。我需要创建一个单独的布局来选择我选择的联系人,并使用联系人列表中的数据加载该布局?请帮忙。

2 个答案:

答案 0 :(得分:0)

显然,你可以从联系人列表中选择你选择的联系人。但是你只需要在查询中找到一个合适的“where”子句(即你想从列表中找到什么类型的联系人)。

是的,你需要创建单独的布局来显示它们。

例如:通过电话号码获取联系人

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.HAS_PHONE_NUMBER+"='true'", null, null);  // gives you the list of contacts who has phone numbers

while (cursor.moveToNext()) { 

     String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
     Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); 
     while (phones.moveToNext()) { 
         String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));                 
      }
      phones.close(); 
}

希望,我能正确得到您的要求。如果没有,请告诉我!

答案 1 :(得分:-1)

  1. 基本上,您需要使用其唯一的迭代遍历所有联系人 id名为contact_id。

  2. 避免在循环中使用游标内的游标。

  3. 试试这个演示应用。看看它以适当的安卓方式读取联系人的速度有多快

    Source code attached