Lire et écrire Calendrier
Mon objectif est de lire et d'écrire Calendrier.
je suis capable de lire des données à partir du contenu://calendrier/calendriers et contenu://calendrier/événements
String uriString = "content://calendar/calendars";
Log.i("INFO", "Reading content from " + uriString);
readContent(uriString);
uriString = "content://calendar/events";
Log.i("INFO", "Reading content from " + uriString);
readContent(uriString);
private void readContent(String uriString) {
Uri uri = Uri.parse(uriString);
Cursor cursor = mContext.getContentResolver().query(uri, null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
String columnNames[] = cursor.getColumnNames();
String value = "";
String colNamesString = "";
do {
value = "";
for (String colName : columnNames) {
value += colName + " = ";
value += cursor.getString(cursor.getColumnIndex(colName))
+ " ||";
}
Log.e("INFO : ", value);
} while (cursor.moveToNext());
}
}
je suis également insérer un nouvel enregistrement dans le calendrier comme :
String calUriString = "content://calendar/calendars";
ContentValues values = new ContentValues();
values.put("name", "Code Generate Calendar");
values.put("displayName", "Code Generate Calendar");
values.put("hidden", 0);
values.put("color", "-7581685");
values.put("access_level", "700");
values.put("selected", "1");
values.put("timezone", "Asia/Karachi");
Uri calendarUri = context.getContentResolver().insert(
Uri.parse(calUriString), values);
mais il n'apparaît pas dans le Calendrier.
quand je vais pour insérer de nouveaux événements dans le Calendrier comme :
ContentValues values = new ContentValues();
values.put("calendar_id", 4);
values.put("dtend", "1277337600000");
values.put("dtstart", "1277251200000");
//values.put("title", "first TEst event");
values.put("transparency", 1);
values.put("selected", 1);
values.put("color", "-16380578");
//values.put("lastDate", "6/25/2010");
//values.put("access_level", 700);
values.put("eventStatus", 1);
values.put("eventTimezone", "UTC");
values.put("timezone", "Asia/Karachi");
values.put("allDay", 1);
String eventUriString = "content://calendar/events";
Uri eventUri = context.getContentResolver().insert(
Uri.parse(eventUriString), values);
jeter exception que la colonne n'est pas valide.
comment cela est possible.
Grâce
Voici le tutoriel pour Ajouter une Seule Occurrence de l'Événement à un Calendrier Ajouter une Seule Occurrence de l'Événement à un Calendrier
OriginalL'auteur Kamran Omar | 2010-06-23
Vous devez vous connecter pour publier un commentaire.
Le calendrier fournisseur de contenu ne fait pas partie du kit SDK d'Android. Il a changé entre les versions d'Android avant et le faire à nouveau. Il peut ne pas fonctionner sur certains appareils, où ils ont remplacé le calendrier par défaut de l'application avec leur propre.
Ne pas utiliser sans papiers fournisseurs de contenu.
La solution est la même que la question 32 minutes auparavant -- utiliser le Calendrier Google GData Api pour manipuler le calendrier de l'utilisateur.
OriginalL'auteur CommonsWare
//Insertion d'un événement à l'agenda pour android 2.2 et au-dessus si moins de 2.2 plutôt content://com.android.calendrier écrire des contenus://calendrier
OriginalL'auteur Pradeep
Dates ont été écoulés depuis la première question. Et aujourd'hui, il semble que le calendrier de fournisseur de contenu est bien documenté. (Peut-être depuis l'API 14?)
Pour la réponse courte à l'exception de la différence de type de vous donner de la colonne et le type attendu. (tant attendu pour dtstart au lieu de String)
http://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#DTSTART
Pour plus d'informations, il existe une autre ressource sur developer.android.com:
http://developer.android.com/guide/topics/providers/calendar-provider.html
OriginalL'auteur 9re