2016-12-05 54 views
1

我需要讀取屬於特定帳戶的所有聯繫人並按其姓名對其進行排序。如何根據顯示名稱對RawContacts進行排序?

我想讓它們在Cursor中排序,而不是在數組中排序它們。

這是我目前做的:

  1. 我做一個查詢中ContactsContract.RawContacts.CONTENT_URI,並得到他們的ContactsContract.RawContacts._ID

  2. 再次查詢它根據id 和

  3. 的數據 ContactsContract.RawContacts.Entity.CONTENT_DIRECTORY
  4. 將其添加到數組。 (它似乎不是一個很好的解決方案,但我不知道有任何其他方式來實現這一點)

我錯過了什麼?

+0

這似乎是沒有辦法做到這一點使用一個簡單的查詢。 4年來,這個古老的體系一直沒有演變。 – Softlion

回答

0

這樣

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, 
    ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
    null, 
    "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC"); 

運行查詢現在光標retrun shoted值

+0

感謝您令人印象深刻的快速反應,但我在標題中提到我正在尋找RawContacts(屬於特定賬戶) – DoruChidean

+0

詳細請詳述 –

+0

ContactsContract.RawContacts表,而不是ContactsContract.Contacts表 – Softlion

相關問題