我需要获取Android设备联系人的ID,名字,姓氏,号码(或数字),电子邮件,网站的列表。我知道通过获取ID可以查询电话号码,这不是什么大问题。但是我不知道如何查询才能正确获取所有这些列。
我应该为我的名字需要ContactsContract.CommonDataKinds.StructuredName电子邮件我需要ContactsContract.CommonDataKinds.Email.ADDRESS,id的联系方式和网站ContactsContract.CommonDataKinds.Website.URL。
我的代码返回了奇怪的值,例如GIVEN_NAME的单位数字,FAMILY_NAME的null,Email.ADDRESS的联系电话之一。
但是我认为问题是查询URI,我应该使用哪一个?
ContentResolver cr = getActivity().getContentResolver();
String[] projection = new String[] {
Contacts._ID,
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
ContactsContract.CommonDataKinds.Website.URL,
ContactsContract.CommonDataKinds.Email.ADDRESS};
Cursor nameCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
projection,
null,
null,
null);
while (nameCur.moveToNext()) {
String given = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME));
String family = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME));
String email = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));
Integer id= nameCur.getInt(nameCur.getColumnIndex(Contacts._ID));
String website = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.Website.URL));
//do some work with strings...
}
相关分类