На самом деле у вас есть два варианта.
Вы можете проверить учетные записи, синхронизированные с устройством, а затем проверить, являются ли эти учетные записи также учетными записями Google, которые синхронизируют свои соответствующие календари с устройством.
Ниже приведены все учетные записи, зарегистрированные на устройстве (как правило, учетные записи Google). Если вы хотите, чтобы все учетные записи, независимо от того, являются ли они Google или нет, вместо этого используйте AccountManager.getAccounts().
Account[] theAccounts = AccountManager.getAccountsByType("com.google");
Необходимо сначала зарегистрироваться на ваш счетManager через getSystemService(Context.ACCOUNT_SERVICE)
.
Чтобы получить доступ к календарю, синхронизированному на устройстве, прочитайте «синхронизированный» как активный, вы можете использовать API GData (который я никогда не мог нормально работать) или доступ к локальной базе данных sqlite, которая хранит календар (ы) непосредственно на устройстве.
Если вы не отправляете тонны кода о том, как получить доступ к этой базе данных, если вы выполняете поиск по «андроидному доступу к базе данных календаря», вы должны найти много полезной информации о доступе к этой базе данных.
Хорошая отправная точка: Getting events from calendar
Я эта работа на приложении, которое я пишу - проверка локальные/синхронизированные счетов, затем потянув, что данные из внутренней базы данных и захватывая календари только для локальных учетных записей по сравнению со всеми календарями на устройстве. У меня есть много календарей, которые мне поделились с работы, поэтому я хочу, чтобы для моего приложения были календари «local».