Android联系人contract.Directory API
我正在尝试从全球通讯簿公司帐户中选择电话号码。我想使用本机选择器/API,因为我不想提示用户输入登录凭据。我遇到了ContactsContract.directoryapi。然而,我找不到任何关于如何使用它的样本。我试过:Android联系人contract.Directory API,android,contactscontract,Android,Contactscontract,我正在尝试从全球通讯簿公司帐户中选择电话号码。我想使用本机选择器/API,因为我不想提示用户输入登录凭据。我遇到了ContactsContract.directoryapi。然而,我找不到任何关于如何使用它的样本。我试过: private static final String[] PEOPLE_PROJECTION = new String[] { ContactsContract.Directory._ID, ContactsContract.Directory.DISPLA
private static final String[] PEOPLE_PROJECTION = new String[] {
ContactsContract.Directory._ID,
ContactsContract.Directory.DISPLAY_NAME,
};
StringBuilder buffer = null;
String[] args = null;
if (constraint != null) {
buffer = new StringBuilder();
buffer.append("UPPER(");
buffer.append(Phone.DISPLAY_NAME);
buffer.append(") GLOB ?");
args = new String[] { constraint.toString().toUpperCase() + "*" };
}
Cursor c = getContentResolver().query(ContactsContract.Directory.CONTENT_URI, PEOPLE_PROJECTION, buffer == null ? null : buffer.toString(), args, null);
但是c总是返回null。请注意,我正在尝试检索此处的显示名称,因为我不确定如何检索电话号码。谢谢你的帮助。请看附件中的源代码,我是这样问的。该应用程序利用 contacts contract.Directory并在一系列不同的设备上工作,HTC除外。虽然这个问题已经很老了,但它可能会帮助其他人
Cursor phones = getActivity().getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
null, null);
while (phones.moveToNext()) {
Contact_Class contacts = new Contact_Class();
contacts.setPersonName(phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
contacts.setPhoneNumber(phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
contact_list.add(contacts);
}
phones.close();
public class Contact_Class {
String personName;
String phoneNumber;
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}