2017-03-01 32 views
0

我研究了很多,顯然它是解決此問題的簡單解決方案。我只想列出要顯示的電話配置中標記的聯繫人。僅列出標記爲在您的手機上可見的聯繫人

我有這個實現,但它列出了所有的聯繫人。

public void showVisibleContacts(){ 
    Uri uri = ContactsContract.Contacts.CONTENT_URI; 
    String[] projection = { 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.Contacts.IN_VISIBLE_GROUP 
    }; 
    /* checked is visible or 0 not visible */ 
    String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'"; 
    String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; 
    Cursor cursor = getContentResolver().query(uri, projection, selection, null, sortOrder); 

    cursor.moveToFirst(); 

    while (!cursor.isAfterLast()) { 
     int columnName = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); 
     Log.e("Contact: ", "columnName: " + columnName); 
     cursor.moveToNext(); 
    } 
} 

有沒有人解決過這個問題?有幫助 ?

編輯:添加更多的相關信息

實施例: 配置在智能手機

訪問CONFIGS在選項從[聯繫人]

步驟1 http://bytefreaks.net/wp-content/uploads/2016/11/02-Select-Contacts-to-display-576x1024.png

步驟2 http://bytefreaks.net/wp-content/uploads/2016/11/03-Make-sure-All-Contacts-is-selected-576x1024.png

+0

什麼是「要顯示的電話配置」? –

回答

0

您的問題很模糊,但有幾種方法可以過濾/隱藏聯繫人。

最明顯的是軟標記deleted,它可以像你試圖使用in-visible-group標誌一樣使用(它說'我的至少一個原始聯繫人是可見的')。您可能同樣容易地意味着您喜歡的聯繫人 - 在這種情況下,您需要starred標誌