Je suis juste en train de me mettre au courant sur Android, et aujourd'hui, lors d'une réunion de projet, quelqu'un a déclaré qu'Android n'avait pas d'application de calendrier native, donc les utilisateurs utilisent simplement l'application de calendrier qu'ils aiment.
Est-ce vrai, et si oui, comment puis-je ajouter par programme un événement au calendrier de l'utilisateur? Existe-t-il une API commune qu'ils partagent tous?
Pour ce que ça vaut, nous ciblons probablement Android 2.x.
Réponses:
Quel calendrier?
Non, pas plus qu'il n'y a une "API commune qu'ils partagent tous" pour les applications de calendrier Windows. Il existe des formats de données courants (par exemple, iCalendar) et des protocoles Internet (par exemple, CalDAV), mais aucune API commune. Certaines applications de calendrier n'offrent même pas d'API.
Si vous souhaitez intégrer des applications de calendrier spécifiques, contactez leurs développeurs et déterminez s'ils proposent une API. Ainsi, par exemple, l'application Calendar du projet open source Android, que Mayra cite, ne propose aucune API documentée et prise en charge. Google a même explicitement dit aux développeurs de ne pas utiliser les techniques décrites dans le didacticiel cité par Mayra.
Une autre option consiste à ajouter des événements au calendrier Internet en question. Par exemple, la meilleure façon d'ajouter des événements à l'application Calendrier à partir du projet open source Android est d'ajouter l'événement au calendrier Google de l'utilisateur via les API GData appropriées.
METTRE À JOUR
Android 4.0 (niveau d'API 14) a ajouté un
CalendarContract
ContentProvider
.la source
Essayez ceci dans votre code:
la source
Utilisez cette API dans votre code .. Cela vous aidera à insérer un événement, un événement avec rappel et un événement avec réunion peut être activé ... Cette API fonctionne pour la plate-forme 2.1 et supérieure Ceux qui utilisent moins de 2.1 au lieu de contenu: // com .android.calendar / events use content: // calendrier / événements
la source
event.put("eventTimezone", "UTC/GMT +2:00")
et éliminéevent.put("visibility", 3)
etevent.put("transparency", 0)
et cela fonctionne bienandroid.database.sqlite.SQLiteException
en ligneUri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
J'ai utilisé le code ci-dessous, cela résout mon problème pour ajouter un événement dans le calendrier de l'appareil par défaut dans ICS et également sur la version moins que ICS
J'espère que cela aiderait .....
la source
À partir de la version 4.0 d'Android, des API et des intentions officielles sont disponibles pour interagir avec les fournisseurs de calendrier disponibles .
la source
Juste au cas où quelqu'un en aurait besoin pour Xamarin en c #:
Fonctions d'assistance:
la source
Google Agenda est l'application de calendrier "native". Pour autant que je sache, tous les téléphones sont livrés avec une version installée, et le SDK par défaut en fournit une version.
Vous pouvez consulter ce didacticiel pour l'utiliser.
la source
Essaye ça ,
la source
si vous avez une chaîne de date donnée avec la date et l'heure.
par exemple
String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */
utilisez le code suivant pour ajouter un événement avec date et heure au calendrier
la source
vous devez ajouter un drapeau:
ou vous causerez une erreur avec:
startActivity()
hors d'un contexte d'activité nécessite leFLAG_ACTIVITY_NEW_TASK
la source