Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
#1

Глючит получение id группы по id контакта телефонной книги

27.06.2014, 17:03. Просмотров 803. Ответов 1
Метки нет (Все метки)

Все перерыл, не могу решить проблему

Перепробовал разные методы получения айдишника группы, в которой находится контакт, по айдишнику контакта

Проблема в том, что на одних устройствах правильно отрабатывает, на других - каким-то неведомым методом делит контакты на две части, где одна часть вообще без групп, а вторая с какой-нибудь группой

При этом в контакты захожу и смотрю - они в нормальных группах находятся.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
static long getGroupIdFor(ContentResolver cr, Long contactId){
        
        if(Main.fastLoading) {
            return Long.MIN_VALUE;
        }
        
        String where = String.format(
                "%s = ? AND %s = ?",
                ContactsContract.Data.MIMETYPE,
                ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID);
 
        String[] whereParams = new String[] {
                ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE,
                Long.toString(contactId),
        };
 
        String[] selectColumns = new String[] {
                ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,
        };
 
        Cursor groupIdCursor = cr.query(
                ContactsContract.Data.CONTENT_URI, 
                selectColumns, 
                where, 
                whereParams, 
                null);
        try {
            if(groupIdCursor.moveToFirst()) {
                return groupIdCursor.getLong(0);
            }
            return Long.MIN_VALUE; // Has no group ...
        } finally {
            groupIdCursor.close();
        }
    }
И еще вопрос, можно ли как-то одним запросом, при получении списка всех контактов - получить и группу, не делая выборок?

Добавлено через 1 час 1 минуту
Решено. Вот так работает и левые группы не показывает)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static long getGroupIdFor(ContentResolver cr, Long contactId) {
        
        if(Main.fastLoading) {
            return Long.MIN_VALUE;
        }
        
        String where = ContactsContract.Data.RAW_CONTACT_ID
                + "="
                + contactId
                + " AND "
                + ContactsContract.Data.MIMETYPE
                + "='"
                + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE
                + "'";
 
        Cursor cursor = cr.query(ContactsContract.Data.CONTENT_URI, null, where, null, null);
        
        String groupId = Long.toString(Long.MIN_VALUE);
        while (cursor.moveToNext()) {
            groupId = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DATA1));
            
        }
        cursor.close();
        
        return Long.parseLong(groupId);
          
    }

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2014, 17:03
Ответы с готовыми решениями:

Получить контакт из телефонной книги
Домашнее задание. Помогите решить, уже 3 сутки не могу понять putExtra и...

Сервис для телефонной книги
Доброго времени суток! Подскажите пожалуйста, как в Android можно поднять свой...

Отправить смс на номер из телефонной книги
Можете помочь в этом вопросе: "Как отправить смс на номер из телефонной книги"...

Как достать из телефонной книги адреса чатов, адреса проживания и сайты
Здравствуйте, как достать из телефонной книги адреса чатов, адреса проживания и...

Реализация телефонной книги
Код не работает , не могли бы подсказать где ошибка?? #pragma once ...

1
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
01.07.2014, 09:51  [ТС] #2
UPDATE!

не помогает, все равно на некоторых устройствах нормально определяет группы контактов, а на некоторых тупо присваивает айдишник группы My Contacts, причем есть ли у контакта группа или ее нет - не важно.

помогите)

В чем может быть проблема? в кривом запросе? в разных бд?

первый метод, который я скинул - работает на телефонах, но на некоторых планшетах днс неверно определяет группы
второй делает совершенно противоположное

Добавлено через 19 часов 29 минут
Никто никогда и не разу в жизни не работал с телефонным справочником?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 09:51

Ошибочка в коде телефонной книги
Добрый день. Задача - написать телефонную книгу. Все работает, но... когда...

Как сделать класс телефонной книги?
Здравствуйте, несколько дней назад начал изучать питон и столкнулся с...

Скрипт на perl для телефонной книги
добрый день. нужна помощь знающих людей. есть база данных телефонов и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru