仅列出手机上标记为可见的联系人

时间:2017-03-01 19:40:51

标签: android

我研究了很多,显然这是解决这个问题的简单方法。我只想列出要在电话配置中标记的联系人。

我有这个实现,但它列出了所有联系人。

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();
    }
}

有没有人解决过这个问题?可以帮忙吗?

修改:添加更多信息

实施例: 智能手机中的配置

从[联系人]

中的选项中访问配置

第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

1 个答案:

答案 0 :(得分:0)

你的问题很模糊,但有几种方法可以过滤/隐藏联系人。

最明显的是软deleted标志,可以完全按照您尝试使用in-visible-group标志(其中显示'至少有一个原始联系人可见')使用。您可以轻松地表达您喜欢的联系人 - 在这种情况下,您需要starred标志