Cómo obtener la lista de eventos del calendario del dispositivo en el dispositivo android?

Quiero obtener el evento del calendario última sevendays en dispositivos Android? Soy principiante, así que dime paso a paso la solución para esto .. Sólo obtener y leer el calendario no actualizar y eliminar. ¿Alguien me ayuda? He utilizado el código de abajo!

public class Example { public static void readCalendar(Context context) { ContentResolver contentResolver = context.getContentResolver(); // Fetch a list of all calendars synced with the device, their display names and whether the // user has them selected for display. final Cursor cursor = contentResolver.query(Uri.parse("content://calendar/calendars"), (new String[] { "_id", "displayName", "selected" }), null, null, null); // For a full list of available columns see http://tinyurl.com/yfbg76w HashSet<String> calendarIds = new HashSet<String>(); while (cursor.moveToNext()) { final String _id = cursor.getString(0); final String displayName = cursor.getString(1); final Boolean selected = !cursor.getString(2).equals("0"); Log.v("anim","Id: " + _id + " Display Name: " + displayName + " Selected: " + selected); calendarIds.add(_id); } // For each calendar, display all the events from the previous week to the end of next week. for (String id : calendarIds) { Uri.Builder builder = Uri.parse("content://calendar/instances/when").buildUpon(); long now = new Date().getTime(); ContentUris.appendId(builder, now - DateUtils.WEEK_IN_MILLIS); ContentUris.appendId(builder, now + DateUtils.WEEK_IN_MILLIS); Cursor eventCursor = contentResolver.query(builder.build(), new String[] { "title", "begin", "end", "allDay"}, "Calendars._id=" + id, null, "startDay ASC, startMinute ASC"); // For a full list of available columns see http://tinyurl.com/yfbg76w while (eventCursor.moveToNext()) { final String title = eventCursor.getString(0); final Date begin = new Date(eventCursor.getLong(1)); final Date end = new Date(eventCursor.getLong(2)); final Boolean allDay = !eventCursor.getString(3).equals("0"); Log.v("anim","Title: " + title + " Begin: " + begin + " End: " + end + " All Day: " + allDay); } } } } 

Tengo null-pointerException.

Mi problema resuelto y uso code abajo –

 public class Utility { public static ArrayList<String> nameOfEvent = new ArrayList<String>(); public static ArrayList<String> startDates = new ArrayList<String>(); public static ArrayList<String> endDates = new ArrayList<String>(); public static ArrayList<String> descriptions = new ArrayList<String>(); public static ArrayList<String> readCalendarEvent(Context context) { Cursor cursor = context.getContentResolver() .query( Uri.parse("content://com.android.calendar/events"), new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }, null, null, null); cursor.moveToFirst(); // fetching calendars name String CNames[] = new String[cursor.getCount()]; // fetching calendars id nameOfEvent.clear(); startDates.clear(); endDates.clear(); descriptions.clear(); for (int i = 0; i < CNames.length; i++) { nameOfEvent.add(cursor.getString(1)); startDates.add(getDate(Long.parseLong(cursor.getString(3)))); endDates.add(getDate(Long.parseLong(cursor.getString(4)))); descriptions.add(cursor.getString(2)); CNames[i] = cursor.getString(1); cursor.moveToNext(); } return nameOfEvent; } public static String getDate(long milliSeconds) { SimpleDateFormat formatter = new SimpleDateFormat( "dd/MM/yyyy hh:mm:ss a"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(milliSeconds); return formatter.format(calendar.getTime()); } 

¡Muchas gracias! Sin embargo, obtuvo todos los eventos de un único calendario, como su cuenta principal de Google, ¿cómo puede obtener eventos de todos los calendarios disponibles?

Tenga en cuenta que en su Widget de calendario incorporado, puede ver eventos de Gmail, Exchange, Facebook, etc '¿Cómo obtener estos eventos también?

En cuanto a eventos particulares para la fecha o la semana, hice esto usando la cláusula de selección y la selección Args en la declaración de la consulta como esto para un día en particular:

Éstas son la selección y args definen:

 Uri content = Uri.parse("content://com.android.calendar/events"); String[] vec = new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "allDay", "eventLocation" }; String selectionClause = "(dtstart >= ? AND dtend <= ?) OR (dtstart >= ? AND allDay = ?)"; String[] selectionsArgs = new String[]{"" + dtstart, "" + dtend, "" + dtstart, "1"}; 

Y así se ve la consulta:

  ContentResolver contentResolver = context.getContentResolver(); Cursor cursor = contentResolver.query(content, vec, selectionClause, selectionsArgs, null); 
  • Android: Multi toque y TYPE_SYSTEM_OVERLAY
  • Android cómo detectar Copiar evento de Editado en android
  • Los eventos de Android Flurry no se informan en el panel
  • Actualizar y eliminar eventos del calendario en android a través de mi aplicación
  • SDK de Android: ¿Cómo salir del estado de la oficina para eventos de Calendario?
  • Android MultiSelectListPreference uncheck no se dispara SharedPreferenceChanged
  • Cómo enviar eventos táctiles (Eventos de pantalla) a otra aplicación en android
  • Roboguice, AndroidAnnotations y eventos entre hilos
  • Cambiar el contenido de Spinner al abrir
  • Android - Cómo manejar el toque de dos dedos
  • Comunicación personalizada de Ver a la actividad de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.