Разница между календарем LG по умолчанию и календарями Google

На моем LG-G3 есть календарь по умолчанию с названием «Телефон». Это не Google.

Я создаю приложение, которое синхронизирует события с календарями Google пользователя, но когда я выбираю все календари с запросом, я также получаю календарь «Телефон». Поскольку это не календарь Google, я не могу использовать его с функциями календаря Google (вставка, удаление и т. д.).

Я не вижу никакой разницы между календарем «Телефон» и канледарами Google, кроме его названия. Есть ли способ узнать, принадлежит ли календарь Google или нет?

Это мой запрос:

        String[] l_projection = new String[] { Calendars._ID, Calendars.CALENDAR_DISPLAY_NAME, Calendars.CALENDAR_ACCESS_LEVEL, Calendars.ALLOWED_REMINDERS, Calendars.SYNC_EVENTS };
        Uri l_calendars;
        if (Build.VERSION.SDK_INT >= 8) {
            l_calendars = Uri.parse("content://com.android.calendar/calendars");
        } else {
            l_calendars = Uri.parse("content://calendar/calendars");
        }

        try {
            Cursor l_managedCursor = activity.getContentResolver().query(l_calendars, l_projection, null, null, null); 
            if (l_managedCursor.moveToFirst()) {
                String l_methodAllow;
                String l_accessPermission;
                String l_calName;
                String l_calId;
                String l_syncEvents;
                int l_cnt = 0;
                int l_syncEventsCol = l_managedCursor.getColumnIndex(l_projection[4]);
                int l_methodAllowCol = l_managedCursor.getColumnIndex(l_projection[3]);
                int l_accessPermissionCol = l_managedCursor.getColumnIndex(l_projection[2]);
                int l_nameCol = l_managedCursor.getColumnIndex(l_projection[1]);
                int l_idCol = l_managedCursor.getColumnIndex(l_projection[0]);
                do {
                    String access = l_managedCursor.getString(l_accessPermissionCol);
                    if (access.equals("500") || access.equals("600") || access.equals("700") || access.equals("800")) {
                        l_syncEvents = l_managedCursor.getString(l_syncEventsCol);
                        l_methodAllow = l_managedCursor.getString(l_methodAllowCol);
                        l_accessPermission = l_managedCursor.getString(l_accessPermissionCol);
                        l_calName = l_managedCursor.getString(l_nameCol);
                        l_calId = l_managedCursor.getString(l_idCol);

                        calNames.add(l_calName);
                        // ....

                        ++l_cnt;
                    }
                } while (l_managedCursor.moveToNext());
            }
        } catch (Exception e) {
            // ...
        }

person TamarG    schedule 08.03.2015    source источник
comment
Календарь Google можно определить, посмотрев на доменное имя идентификатора календаря. Для основного календаря доменное имя идентификатора календаря — @gmail.com. Если это дополнительный календарь, доменное имя идентификатора календаря — group.calendar.google.com.   -  person SGC    schedule 13.03.2015
comment
@SGC - вы можете опубликовать это как ответ   -  person TamarG    schedule 15.03.2015
comment
Спасибо @TamarG. Я написал ответ :)   -  person SGC    schedule 16.03.2015


Ответы (1)


Календарь Google можно определить, посмотрев на доменное имя идентификатора календаря. Для основного календаря доменное имя идентификатора календаря — @gmail.com. Если это дополнительный календарь, доменное имя идентификатора календаря — group.calendar.google.com.

person SGC    schedule 16.03.2015