我正在尝试按字母排序顺序获取手机通讯录。它通过快速获取名称但未获得排序顺序。我尝试 ContactsContract.Contacts.SORT_KEY_PRIMARY +“ASC”也 ContactsContract .Contacts.DISPLAY_NAME +“ASC”但没有取得好成绩。
我的代码是
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null,ContactsContract.Contacts.DISPLAY_NAME + " ASC");
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.e("Tag ","Name " + name);
}
phones.close();
答案 0 :(得分:1)
您必须按照以下方式获取手机通讯录的排序顺序:
int sort_order=Settings.system.getInt (getApplicationContext ().getContentResolver (),"android.contacts.SORT_ORDER");
现在您的光标查询将如下所示:
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null,sort_order);
答案 1 :(得分:1)
您可以按字母顺序获取联系人:
Cursor cursor = getContentResolver.query(Phone.CONTENT_URI, null, null, null, Phone.DISPLAY_NAME + " ASC");