Tengo problemas para encontrar una solución a mi problema. Estoy intentando agregar varios eventos a mi calendario de Android, pero no sé cómo. Me dio encontré este código:Insertar varios eventos en el calendario de Android
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", cal.getTimeInMillis());
intent.putExtra("allDay", true);
intent.putExtra("rrule", "FREQ=YEARLY");
intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
intent.putExtra("title", "A Test Event from android app"+String.valueOf(i));
startActivity(intent);
pero todo lo que hace es que me envíe a mi calendario y me permite editar y manualmente inserto mi caso. Quiero insertar los eventos automáticamente, sin ir a mi aplicación de calendario. Además, puedo agregar solo un evento usando este código. Esto no es lo que yo quería. Tengo 2 matrices de cadenas, una que contiene la fecha y una que contiene el nombre del evento. ¿Alguien sabe si hay una manera de hacer esto? He estado buscando una solución por bastante tiempo y no he encontrado ninguna. Estaría agradecido si alguien me ayudó. ¡Gracias!
¡He resuelto el problema! ¡Muchas gracias! Pero ahora tengo otro problema que no puedo resolver. tengo este código:
ContentValues cv = new ContentValues();
cv.put("calendar_id", calIds[0]);
cv.put("title", title);
//cv.put("dtstart", dtstart);
//cv.put("dtend", dtend);
cv.put("rrule", "FREQ=MONTHLY");
cv.put("description", comment);
Calendar start = Calendar.getInstance();
start.set(2012, 0, 2, 8, 0, 0);
Calendar end = Calendar.getInstance();
end.set(2012, 0, 2, 9, 0, 0);
long startTime = start.getTimeInMillis();
long endTime = end.getTimeInMillis();
cv.put("dtstart", startTime);
cv.put("dtend", endTime);
//Insertion on the events of the calendar
cr.insert(Uri.parse("content://com.android.calendar/events"), cv);
Inserta mi caso, pero no lo hace recurrentes. Quiero decir que mi evento aparece en 2jan2012 pero en 2jan2013 no y tampoco en 2014 y así sucesivamente. Así que abrí mi calendario en el teléfono e intenté editar mi evento y vi que donde debería seleccionar su ocurrencia, allí se muestra el 2 de enero de 2012, no el 2 de enero, como debería ser si fuera a personalizar mi evento de mi teléfono. Por otro lado, si trato de agregar un evento manualmente desde mi teléfono, funciona bien (es decir, puedo agregar un evento que ocurra anualmente).
hecho de que finalmente añade una API oficial Calendario en el ICS: http://developer.android.com/reference/android/provider/CalendarContract.html –
gracias @mbaird, es realmente una buena noticia! No estoy trabajando en Android por un tiempo y debería ponerme al día con la última versión. – hago
He resuelto el problema pero ahora tengo otro problema. Si pudiera ayudarme una vez más estaría muy agradecido ... He editado mi pregunta sobre el otro tema. – Lara