2010-11-12 276 views
0

我已经在前期的Android2.0 API下面的代码:如何查询既有电话号码又有姓名的联系人?

String[] PROJECTION = new String[] { Contacts.People._ID, Contacts.PeopleColumns.NAME, Contacts.Phones.NUMBER }; 
    Cursor c = mActivity.managedQuery(Contacts.People.CONTENT_URI, PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER); 

我应该做什么样的选择,检索同时拥有姓名和电话号码的联系人?

回答

2

在Android 1.6及以上:

String[] PROJECTION=new String[] { Contacts.Phones._ID, 
            Contacts.Phones.NAME, 
            Contacts.Phones.NUMBER 
            }; 
Cursor c=a.managedQuery(Contacts.Phones.CONTENT_URI, PROJECTION, null, null, null); 

在Android中2.0和更新的:

String[] PROJECTION=new String[] { Contacts._ID, 
            Contacts.DISPLAY_NAME, 
            Phone.NUMBER 
            }; 
Cursor c=a.managedQuery(Phone.CONTENT_URI, PROJECTION, null, null, null); 

Here is a sample project展示他们的使用,包括检测和使用基于设备OS电平的合适的API。

+0

好的,但如何获得People._ID在这样的查询? (该ID将用于联系人照片检索) – pixel 2010-11-12 15:00:51

+1

@pixel:嗯,在这段代码中我略显sl((注意自我:清理它)。第二个示例中的Contacts._ID是联系人的_ID,这将是您近期查询所需的。我相信,老年人的等值将是'Contacts.Phones.PERSON_ID'。 – CommonsWare 2010-11-12 15:09:25

+0

谢谢,我没有注意到这个常数。还有一件事 - 当我有两个电话号码的联系人时,我得到两行同名和不同的电话。你有任何线索如何与两个号码联系? – pixel 2010-11-12 15:17:42

相关问题