2010-11-07 2 views
0

J'écris un logiciel qui vérifie les événements dans les calendriers de l'utilisateur et fait quelques manipulations sur eux. Mais je voudrais seulement toucher uniquement les événements qui sont présents dans les calendriers synchronisés seulement. J'utilise l'API Google Calendar, mais je ne sais pas comment lister uniquement les calendriers synchronisés et ignorer les autres.Android: comment détecter les calendriers Google synchronisés avec l'appareil?

Merci

Répondre

0

Il n'y a pas de concept de "calendriers synchronisés" par rapport au SDK Android. Certaines applications peuvent synchroniser des calendriers, tels que l'application Calendrier faisant partie du projet open source Android. Cependant, cette application particulière peut exister ou ne pas exister sur un téléphone donné, et elle n'a aucune API documentée et prise en charge.

0

En fait, vous avez deux options ici.

Vous pouvez vérifier les comptes synchronisés avec l'appareil, puis vérifier si ces comptes sont également des comptes Google qui synchronisent leurs calendriers respectifs avec l'appareil.

Vous trouverez ci-dessous tous les comptes enregistrés sur l'appareil (généralement des comptes Google). Si vous voulez tous les comptes, qu'ils soient Google ou non, utilisez plutôt AccountManager.getAccounts(). Vous devez d'abord obtenir votre AccountManager via getSystemService(Context.ACCOUNT_SERVICE). Pour avoir accès aux agendas synchronisés sur le périphérique, lire "synchronisé" comme actif, vous pouvez utiliser l'API GData (que je n'ai jamais réussi à faire fonctionner correctement), ou accéder à la base de données locale sqllite qui stocke le calendrier (s) directement sur l'appareil. Sans afficher des tonnes de code sur la façon d'accéder à cette base de données, si vous effectuez une recherche sur "android accéder à la base de données du calendrier", vous devriez trouver beaucoup d'informations utiles sur l'accès à cette base de données.

Point de départ: Getting events from calendar

Je possède ce travail sur une application que je suis en train d'écrire - la vérification des comptes locaux/synchronisés, puis en tirant les données sur la base de données interne et saisissant les calendriers seulement pour les comptes locaux par rapport à tous les calendriers sur l'appareil. J'ai beaucoup de calendriers partagés avec moi du travail, donc je veux seulement les calendriers "locaux" à l'appareil pour mon application.

0

Vieille question, mais je pensais que je mettrais à jour au cas où quelqu'un le rencontrerait. À partir de SDK 14, vous pouvez utiliser SYNC_EVENTS dans votre query().

Questions connexes