カレンダーにイベントとリマインダーを設定するアプリケーションに取り組んでいます。私が使用したコードは次のとおりです。
private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){
Calendar beginTime = Calendar.getInstance();
beginTime.set(statrYear, startMonth, startDay, startHour, startMinut);
long startMillis = beginTime.getTimeInMillis();
// String to access default google calendar of device for Event setting.
String eventUriString = "content://com.android.calendar/events";
ContentValues eventValues = new ContentValues();
eventValues.put(Events.CALENDAR_ID, 1);
eventValues.put(Events.TITLE, title);
eventValues.put(Events.DESCRIPTION, "Discription");
eventValues.put(Events.EVENT_TIMEZONE, "India");
eventValues.put(Events.DTSTART, startMillis);
eventValues.put("eventStatus", 1);
eventValues.put("visibility", 3);
eventValues.put("transparency", 0);
eventValues.put(Events.HAS_ALARM, 1);
// Set Event in calendar.
Uri eventUri = getContentResolver().insert(Uri.parse(eventUriString), eventValues);
// Getting ID of event in Long.
long eventID = Long.parseLong(eventUri.getLastPathSegment());
/***************** Event: Reminder(with alert) Adding reminder to event *******************/
// String to access default google calendar of device for reminder setting.
String reminderUriString = "content://com.android.calendar/reminders";
ContentValues reminderValues = new ContentValues();
reminderValues.put("event_id", eventID);
reminderValues.put("minutes", 1);
reminderValues.put("method", 1);
//Setting reminder in calendar on Event.
Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
}
現在、このコードは、「Samsung Galaxy S2」および「Sony Xperia」以外の他のデバイスにリマインダーを追加するために正常に機能しています。
デバイスのカレンダーを取得できないことが原因で、リマインダーを設定できません。そのため、アプリでデバイスのデフォルトのカレンダー ID を取得する必要があると思います。すべてのデバイスでリマインダーを設定できるようにします。
「Sony Xperia」でリマインダーが設定されていないために、私が正しい方法であるか、他の問題があるかを教えてください。「Samsung Galaxy S2」と「Samsung and LG and Sony Xperia」デバイスの一部でこのコードをテストしました。
私は何をすべきか教えてください。
ありがとうございました