Uso la API no documentada para agregar eventos de calendario para Android OS 2.2. Ahora que salió Android OS 4, ¡naturalmente las API que utilicé no funcionan! Miré el SDK de Android con respecto a las api del calendario en el nivel 14, pero no pude encontrar una pista sobre cómo usar esto en mi proyecto que he creado con Android OS 2.2. Porque cuando uso la clase CalendarContract
en mi proyecto, muestra un error. Así que no puedo encontrar la pista de qué hacer y cómo usar esta clase en mi proyecto que he creado con Android OS 2.2.Android integración de calendario en Android OS 4
Si alguien tiene alguna muestra para compartir o un enlace a las muestras, por favor hágamelo saber.
Clase Calendario API de la clase
public abstract class CalendarAPI
{
private static CalendarAPI api;
public static CalendarAPI getAPI()
{
String apiClass;
if (Integer.parseInt(Build.VERSION.SDK) > Build.VERSION_CODES.FROYO) {
apiClass = "com.example.calendar.CycleManagerSDK8 ";
} else {
apiClass = "com.example.calendar.CycleManagerSDK14 ";
}
try
{
Class<? extends CalendarAPI> realClass = Class.forName(apiClass).asSubclass(CalendarAPI.class);
api = realClass.newInstance();
}
catch (Exception e)
{
throw new IllegalStateException(e);
}
return api;
}
public abstract boolean setAlertOnDevice(Context c) ;
}
para SDKVersion 8 - 13
public class CycleManagerSDK8 extends CalendarAPI
{
public boolean setAlertOnDevice(Context c)
{
Resources res = c.getResources();
Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events");
Uri REMINDERS_URI = Uri.parse("content://com.android.calendar/" + "reminders");
ContentResolver cr = c.getContentResolver();
Date dtStartDate = getStartDate();
Calendar cal = Calendar.getInstance();
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, m_iStart);
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, DEFAULT_TIME_OF_DATE);
cal.set(Calendar.SECOND, DEFAULT_TIME_OF_DATE);
cal.set(Calendar.MILLISECOND, DEFAULT_TIME_OF_DATE);
String str = m_reminderText + res.getString(R.string.alert_start);
m_strDescription = res.getString(R.string.alert_start_msg);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
values.put("hasAlarm", 1);
Uri event = cr.insert(EVENTS_URI, values);
m_calendarEvents[m_calendarEventCount] = event;
m_calendarEventCount = m_calendarEventCount + 1;
values = new ContentValues();
values.put("event_id", Long.parseLong(event.getLastPathSegment()));
values.put("method", 1);
values.put("minutes", 10);
cr.insert(REMINDERS_URI, values);
}
}
clase para SDKVersion 14
public class CycleManagerSDK14 extends CalendarAPI
{
public void setAlertOnDevice(Context c)
{
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 2, 2, 7, 0);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 2, 2, 7, 0);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Walk The Dog");
values.put(CalendarContract.Events.DESCRIPTION, "My dog is bored, so we're going on a really long walk!");
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "eventTimezone");
cr.insert(CalendarContract.Events.CONTENT_URI, values);
}
}
Gracias.
pl. publique su error o excepción – Vinay
clase no encontrada excepción en CalendarContract – Rahul