【发布时间】:2014-02-12 10:50:10
【问题描述】:
我正在尝试使用contacts、raw_contacts 和data 表检查所有联系人。
从网上阅读我相信Contacts._id 与RawContacts.contact_id 相连,Data.raw_contact_id 与RowContacts._id 相连。我说的对吗?
相信这一点,我建立了这个方法:
public void testingContactsDatabase(String contactId)
{
final String[] projection = new String[] {
Contacts._ID,
Contacts.DISPLAY_NAME,
Data.RAW_CONTACT_ID,
Data.MIMETYPE,
StructuredName.DISPLAY_NAME,
StructuredName.FAMILY_NAME,
StructuredName.GIVEN_NAME,
StructuredName.MIDDLE_NAME,
StructuredName.PREFIX, // Common prefixes in English names are "Mr", "Ms", "Dr" etc.
StructuredName.SUFFIX // Common suffixes in English names are "Sr", "Jr", "III" etc.
};
final String selection = Contacts._ID + " = " + contactId + " AND "
+ Contacts._ID + " = " + RawContacts.CONTACT_ID + " AND "
+ Data.RAW_CONTACT_ID + " = " + RawContacts._ID;
final Cursor curStructuredName = context.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
projection,
selection, null,
//new String[] {contactId, ContactsContract.RawContacts.CONTACT_ID, RawContacts._ID},
null
);
if(curStructuredName.moveToFirst())
{
Log.d("XYZ", "Found something");
}
}
但它永远找不到任何东西。我不确定我是否使用了正确的URI,我尝试过使用不同的URIs 并得到异常或相同的输出。
谁能指出我做错了什么?
谢谢
【问题讨论】:
标签: android sqlite contactscontract