2011-04-06 21 views

Respuesta

12

Después de leer los datos del calendario simplemente probar esto ..

Adición de un evento de una sola aparición de un calendario

para añadir una entrada a un calendario específico, tenemos que configurar una entrada de agenda para insertar el uso los valores de contenido de la siguiente manera:

ContentValues event = new ContentValues(); 

Cada evento tiene que estar atado a un calendario específico, así que lo primero que vas a querer establecer es el identificador del calendario para insertar este evento en:

event.put("calendar_id", calId); 

Nosotros a continuación, configure parte de la información básica sobre el evento, incluidos los campos de cadenas, como el título del evento, la descripción y la ubicación.

event.put("title", "Event Title"); 
event.put("description", "Event Desc"); 
event.put("eventLocation", "Event Location"); 

Hay un número de diferentes opciones para configurar la hora y la fecha de un evento.

Podemos establecer el evento empieza y termina la información de la siguiente manera:

long startTime = START_TIME_MS; 
long endTime = END_TIME_MS; 
event.put("dtstart", startTime); 
event.put("dtend", endTime); 

Si estamos añadiendo un cumpleaños o un día de fiesta, nos propusimos la entrada a ser un evento de todo el día:

event.put("allDay", 1); // 0 for false, 1 for true 

Esta información es suficiente para la mayoría de las entradas. Sin embargo, hay una serie de otros atributos de entrada de calendario útiles.

Por ejemplo, se puede establecer el estado del evento de tentativa (0), confirmado (1) o cancelado (2):

event.put("eventStatus", 1); 

Puede controlar quién puede ver este evento mediante el establecimiento de su visibilidad por defecto (0), confidencialidad (1), privado (2) o pública (3):

event.put("visibility", 0); 

puede controlar si un evento consume tiempo (pueden tener conflictos de programación) en el calendario mediante el establecimiento de su transparencia a opaco (0) o transparente (1).

event.put("transparency", 0); 

Puede controlar si un acontecimiento desencadena una alarma de aviso de la siguiente manera:

event.put("hasAlarm", 1); // 0 for false, 1 for true 

Una vez que el evento del calendario está configurado correctamente, estamos listos para utilizar el ContentResolver para insertar la nueva entrada de agenda en la Uri apropiada para eventos de calendario:

Uri eventsUri = Uri.parse("content://calendar/events"); 
    Uri url = getContentResolver().insert(eventsUri, event); 

la llamada a la pieza de inserción() método pone en contacto el proveedor de contenidos Calendario y intenta insertar la entrada en el appro Calendario de usuario priate. Si navega a la aplicación Calendario y la inicia, debería ver su entrada de calendario en el Calendario apropiado.Como el Calendario se sincroniza, también verá la entrada del Calendario en línea, si está usando el Calendario de Google en la web.

Adición de un evento periódico en un calendario

También puede configurar recurrentes eventos del calendario. Para hacerlo, debe agregar varios campos más al evento en la forma de una regla de recurrencia. La especificación de la regla se basa en RFC2445.

+0

'Calendario cal = Calendar.getInstance(); Intent intennt = new Intent (Intent.ACTION_EDIT); intent.setType ("vnd.android.cursor.item/event"); intent.putExtra ("beginTime", cal.getTimeInMillis()); intent.putExtra ("allDay", verdadero); intent.putExtra ("rrule", "FREQ = AÑO"); intent.putExtra ("endTime", cal.getTimeInMillis() + 60 * 60 * 1000); intent.putExtra ("título", "Un evento de prueba desde la aplicación de Android"); startActivity (intención); ' ¡De lo contrario, probablemente te ayude ...! – Hussain

+0

La gran respuesta ... me ayudó mucho. Gracias. –

+0

@Hussain: Muy buena información. Aclamaciones –

1

esta es la respuesta exacta a esta pregunta

Uri uri = Uri.parse("content://calendar/events"); 
    long eventId = calendeeventid; 
    Uri newuri = ContentUris.withAppendedId(uri, eventId); 
    Intent intent = new Intent(Intent.ACTION_VIEW,newuri); 
    Cursor cursor = getContentResolver().query(newuri, new String[]{"dtstart","dtend",},null, null, null); 
    if(cursor.getCount()>0) 
    { cursor.moveToFirst(); 
    intent.putExtra("beginTime", cursor.getLong(cursor.getColumnIndex("dtstart"))); 
    intent.putExtra("endTime", cursor.getLong(cursor.getColumnIndex("dtend"))); 
    } 
Cuestiones relacionadas