Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Глючит получение id группы по id контакта телефонной книги - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Запрет сворачивания/паузы приложения http://www.cyberforum.ru/android-dev/thread1218383.html
Можно ли запретить сворачивать приложение например при вызове Skype (чтобы приложение всегда оставалось навиду)?
Программирование Android Структура ОС Android Ребят, нужна помощь. Нужно дать полные ответы на ниже приведенные вопросы, исходя из документации ОС Android. Вопрос по самой структуре ОС Android: 1. Системные панели в ОС Android. 2. Метрики в... http://www.cyberforum.ru/android-dev/thread1218333.html
Программирование Android SurfaceView&Canvas
Подскажите, как реализовать отображение, например, карандашика, когда рисуешь на Canvas в SurfaceView. В какую сторону копать, чтобы такое реализовать? Пример в SnapChat: когда сфотографировал - есть...
Программирование Android Получить количество подчиненных в SQLite
Не нашел отдельной ветке по SQLite, поэтому решил задать сюда (это нужно для андроида) Помогите составить запрос... уже перебрал сотни вариантов... и не могу угадать! Есть две таблицы - одна...
Программирование Android Создание View элементов из кода и размещение их в listview http://www.cyberforum.ru/android-dev/thread1217871.html
Здравствуйте, задача такая: 1) Есть массив строк. Программа читает поочереди элементы массива и проверяет его значение: Если значение равно , то выводится картинка, а если выводим TextView. И...
Программирование Android Узнать на каком % зарядки, текущее устройство вызовет action "BATTERY_LOW" Подскажите пожалуйста. Как узнать, на каком % заряда аккумулятора, текущее устройство выдаст сообщение "Осталось 15% энэргии". Спасибо. Добавлено через 57 минут Вот так можно узнать текущий %... подробнее

Показать сообщение отдельно
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102

Глючит получение id группы по id контакта телефонной книги - Программирование Android

27.06.2014, 17:03. Просмотров 737. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru