Tôi sử dụng API không có giấy tờ để thêm sự kiện lịch cho Android OS 2.2. Bây giờ hệ điều hành Android 4 là ra, tự nhiên các API của tôi sử dụng không hoạt động! Tôi đã xem xét SDK Android về lịch api ở cấp 14 nhưng tôi không thể tìm thấy manh mối về cách sử dụng điều này trong dự án của mình mà tôi đã tạo bằng cách sử dụng Android OS 2.2. Bởi vì khi tôi sử dụng CalendarContract
lớp trong dự án của tôi, nó cho thấy lỗi. Vì vậy, tôi không thể tìm ra manh mối cần làm và cách sử dụng lớp này trong dự án của tôi mà tôi đã tạo bằng cách sử dụng hệ điều hành Android 2.2.Tích hợp Lịch Android trong Android OS 4
Nếu bất kỳ ai có bất kỳ mẫu nào để chia sẻ hoặc liên kết đến mẫu, vui lòng cho tôi biết.
Lịch Api Lớp
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) ;
}
lớp cho 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);
}
}
lớp cho 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);
}
}
Cảm ơn bạn.
pl. đăng lỗi của bạn hoặc ngoại lệ – Vinay
lớp không tìm thấy ngoại lệ trên CalendarContract – Rahul