studio samsung programacion para google festivos feriados eventos dias calendarios calendario agregar android events calendar selection

samsung - ¿Cómo consultar eventos del calendario de Android para un rango de fechas específico?



google calendar (1)

Estoy consultando la tabla de eventos en Android para obtener eventos.

String[] projection = new String[] { "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }; Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/events"), projection, null, null, null);

Esto devuelve todos los eventos. Pero ahora quiero eventos solo en duración específica, digamos del 4/03/2013 al 7/03/2013. ¿Cómo uso la selection y la selectionArgs[] ? Intenté esto

String selection = "((dtstart <= ?) AND (dtend >= ?))"; String[] selectionArgs = new String[] {startString, endString};

Pero no devuelve nada. Mi duda es 1. ¿Funcionará la cláusula where? Porque, startDate y endDate primero se convierten en long (milisegundos) y luego en String y luego se almacenan en la tabla. Entonces, ¿cómo se pueden comparar las cadenas por sus valores largos? No hay función toNumber() en sqlite. 2. Si estoy pasando selectionArgs entonces startString y endString deberían estar en qué formato?


startString y endString deben pasar en millis. Intenta usar:

Calendar c_start= Calendar.getInstance(); c_start.set(2013,2,4,0,0); //Note that months start from 0 (January) Calendar c_end= Calendar.getInstance(); c_end.set(2013,2,7,0,0); //Note that months start from 0 (January)

Además, creo que su lógica está invertida, el rango de fechas debería ser así:

String selection = "((dtstart >= "+c_start.getTimeInMillis()+") AND (dtend <= "+c_end.getTimeInMillis()+"))";