2010-11-07 2 views
0

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

Благодаря

ответ

0

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

0

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

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

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

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

Необходимо сначала зарегистрироваться на ваш счетManager через getSystemService(Context.ACCOUNT_SERVICE).

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

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

Хорошая отправная точка: Getting events from calendar

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

0

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