Добавление контакта в группу по имени контакта - PullRequest
0 голосов
/ 14 октября 2018

Я успешно добавляю контакт в группу, используя raw_contact_id, используя этот метод

public static Uri addContactToGroup(String rawContactId,String groupId)
{
    try
    {
        ContentValues values = new ContentValues();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(GroupMembership.GROUP_ROW_ID, groupId);
        values.put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);

        return getContentResolver().insert(Data.CONTENT_URI, values);
    }
    catch (Exception e)
    {}
    return Uri.EMPTY;
}

Но я хочу добавить контакт, используя имя.Я пытался с некоторыми изменениями, но не работает.Пожалуйста, помогите Спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

Простой, просто запросите все RawContacts по этому имени и добавьте их в группу, используя свой код:

public void addToGroupByName(String name, long groupId) {
    String[] projection = new String[] { Data.RAW_CONTACT_ID };
    String selection = "(" + Data.MIMETYPE + "=?) AND (" + StructuredName.DISPLAY_NAME + "=?";
    String[] selectionArgs = new String[] { StructuredName.CONTENT_ITEM_TYPE, name };
    Cursor cur = contentResolver.query(Data.CONTENT_URI, projection, selection, null, null);
    while (cur != null && cur.moveToNext()) {
        long rawId = cur.getLong(0);
        addContactToGroup(rawId, groupId);
    }
    if (cur != null) {
        cur.close();
    }
}

Примечания:

  1. Идентификатор RawContact длинный,не строка
  2. Идентификатор группы также длинный
  3. Поскольку имя не является уникальным идентификатором, и пользователь может иметь более одного контакта с тем же именем, этот код может иметь неожиданныйпоследствия, поэтому убедитесь, что вы знаете, что вы делаете
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...