【问题标题】:Get Favorites Contacts list always null?获取收藏夹联系人列表始终为空?
【发布时间】:2014-03-25 04:37:43
【问题描述】:

我试图在三星 Galaxy S4 上获取所有联系人相同的收藏夹联系人列表。我正在使用以下代码:

public void getFavoritesContactsList(ContentResolver cr) {


        Uri queryUri = ContactsContract.Contacts.CONTENT_URI;

        String[] projection = new String[] {
                ContactsContract.Contacts._ID,
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts.STARRED};

        String selection =ContactsContract.Contacts.STARRED + "="+"1";

        Cursor cursor = managedQuery(queryUri, projection, selection, null, null);

        while (cursor.moveToNext()) {
            String contactID = cursor.getString(cursor
                    .getColumnIndex(ContactsContract.Contacts._ID));

            Intent intent = new Intent(Intent.ACTION_VIEW);
            Uri uri = Uri.withAppendedPath(
                ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID));
            intent.setData(uri);
            String intentUriString = intent.toUri(0);

            String title = (cursor.getString(
                cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));

            name1.add(title);
            _idd.add(contactID);
        }

        cursor.close();
     }

但结果始终为空。

【问题讨论】:

  • 你的代码很完美。请检查您是否真的有任何喜欢的联系人,并检查您的清单是否已输入 READ_CONTACT 权限
  • @Praveen:谢谢,我检查了 Android 设备中的收藏夹组,它有很多最喜欢的联系人,我在清单中也有“android.permission.READ_CONTACTS”。我不知道会发生什么?
  • 我刚刚在我的 SAMSUNG S duos 上运行了您的代码。非常完美。显示了所有我最喜欢的联系人...您如何显示您最喜欢的联系人...
  • 我使用列表视图来显示最喜欢的联系人。不要担心显示,因为我之前只是使用该列表视图来显示所有联系人。我尝试调试和计算结果,但始终为空!
  • 我使用了这一行 Toast.makeText(getApplicationContext(), title, Toast.LENGTH_SHORT).show();在while循环里面..它显示了所有最喜欢的联系人

标签: android contacts favorites


【解决方案1】:
public Map getFavoriteContacts(){

    Map contactMap = new HashMap();

    Uri queryUri = ContactsContract.Contacts.CONTENT_URI;

    String[] projection = new String[] {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.Contacts.STARRED};

    String selection =ContactsContract.Contacts.STARRED + "='1'";

    Cursor cursor = managedQuery(queryUri, projection, selection, null, null);

    while (cursor.moveToNext()) {
        String contactID = cursor.getString(cursor
                .getColumnIndex(ContactsContract.Contacts._ID));

        Intent intent = new Intent(Intent.ACTION_VIEW);
        Uri uri = Uri.withAppendedPath(
            ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID));
        intent.setData(uri);
        String intentUriString = intent.toUri(0);

        String title = (cursor.getString(
            cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));

        contactMap.put(title,intentUriString);
    }

    cursor.close();
    return contactMap;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多