【发布时间】:2019-01-05 21:00:42
【问题描述】:
我需要获取 id、名字、姓氏、数字(或数字)的列表, email, website Android 设备联系人。我知道通过获取 id 我可以查询电话号码,这没什么大不了的。但我不知道我应该如何进行查询才能正确获取所有这些列。
我想对于我需要的名称 ContactsContract.CommonDataKinds.StructuredName 对于我需要的电子邮件 ContactsContract.CommonDataKinds.Email.ADDRESS ,对于 id Contacts对于网站 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...
}
【问题讨论】:
标签: java android android-contacts contactscontract