Android: как определить, какие календари Google синхронизируются с устройством? - PullRequest
0 голосов
/ 08 ноября 2010

Я пишу программное обеспечение, которое проверяет события в пользовательских календарях и выполняет над ними некоторые манипуляции. Но я бы хотел коснуться только тех событий, которые присутствуют только в синхронизированных календарях. Я использую Google Calendar API, но не знаю, как составить список только синхронизированных календарей и игнорировать другие.

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 октября 2011

На самом деле, у вас есть два варианта здесь.

Вы можете проверить учетные записи, синхронизированные с устройством, а затем проверить, являются ли эти учетные записи также учетными записями Google, которые синхронизируют свои соответствующие календари с устройством.

Ниже приведен список всех учетных записей, зарегистрированных на устройстве (обычно это учетные записи Google). Если вам нужны все учетные записи независимо от того, являются ли они Google или нет, используйте взамен AccountManager.getAccounts ().

Account[] theAccounts = AccountManager.getAccountsByType("com.google");

Вы должны сначала получить свой AccountManager через getSystemService(Context.ACCOUNT_SERVICE).

Чтобы получить доступ к календарям, синхронизированным на устройстве, считайте «синхронизированными» как активные, вы можете использовать API GData (который я никогда не смог правильно настроить) или получить доступ к локальной базе данных sqllite, в которой хранятся календарь (ы) прямо на устройстве.

Не публикуя тонны кода о том, как получить доступ к этой базе данных, если вы выполните поиск по запросу «Доступ к базе данных календаря Android», вы должны найти много полезной информации о доступе к этой базе данных.

Хорошая отправная точка: Получение событий из календаря

У меня это работает над приложением, которое я пишу - проверка локальных / синхронизированных учетных записей, затем извлечение этих данных из внутренней базы данных и извлечение календарей только для локальных учетных записей по сравнению со всеми календарями на устройстве. Мне с работы дается много календарей, поэтому я хочу, чтобы календари были «локальными» для устройства моего приложения.

0 голосов
/ 30 апреля 2013

Старый вопрос, но я думал, что обновлю, если кто-то сталкивается с этим. Начиная с SDK 14 вы можете использовать SYNC_EVENTS в вашем query().

0 голосов
/ 08 ноября 2010

В отношении SDK Android отсутствует понятие «синхронизированных календарей».Некоторые приложения могут синхронизировать календари, например приложение Календарь, являющееся частью проекта Android с открытым исходным кодом.Однако это конкретное приложение может существовать или не существовать на любом конкретном телефоне, и оно не имеет документированных и поддерживаемых API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...