2017-11-10 7 views
1

내가 안드로이드에서 일정 알림을 만든하지만 버그 내가 해결하기 위해 노력하고있다 :캘린더 알림

을 내가 알림 시간을 설정하려면 : Senario 1 : 오전 10 Senario 2 : 오후 6시

언제든지 알림을 생성하고 시간을 설정하면 항상 AM을 위해 설정되고 AM은 설정되지 않습니다 AM 및 PM 필터를 구성하는 방법 캘린더 AM PM 형식을 설정하려고했지만 작동하지 않는 것 같습니다.

다음은 제 코드입니다.

private void setReminderToCalender() { 
     try { 
      if (format.trim().toLowerCase().equals("am")) { 
       calendar.set(Calendar.AM_PM, Calendar.AM); 
      } else { 
       calendar.set(Calendar.AM_PM, Calendar.PM); 
      } 
      calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hr)); 
      calendar.set(Calendar.MINUTE, Integer.parseInt(min)); 
      calendar.add(Calendar.HOUR, -2); // create reminder 2 hr ago 
      insertReminderInCalendar(FindingVendorAndTimelineActivity.this, calendar); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void insertReminderInCalendar(Activity activity, Calendar cal) { 

     Uri EVENTS_URI = Uri.parse(getCalendarUriBase(true) + "events"); 
     ContentResolver cr = activity.getContentResolver(); 
     TimeZone timeZone = TimeZone.getDefault(); 

     /** Inserting an event in calendar. */ 
     ContentValues values = new ContentValues(); 
     values.put(CalendarContract.Events.CALENDAR_ID, 1); 
     values.put(CalendarContract.Events.TITLE, " Order Configured"); 
     values.put(CalendarContract.Events.DESCRIPTION, "You have schedule roti order today"); 
     values.put(CalendarContract.Events.ALL_DAY, 0); 
     // event starts at 0 minutes from now 
     values.put(CalendarContract.Events.DTSTART, cal.getTimeInMillis()); 
     // ends 60 minutes from now 
     values.put(CalendarContract.Events.DTEND, cal.getTimeInMillis() + 2 * 60 * 1000); 
     values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID()); 
     values.put(CalendarContract.Events.HAS_ALARM, 1); 
     Uri event = cr.insert(EVENTS_URI, values); 

     // Display event id. 
     Toast.makeText(RotiApplication.getInstance(), " scheduled order is been added to you calender", Toast.LENGTH_SHORT).show(); 

     /** Adding reminder for event added. */ 
     Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(true) + "reminders"); 
     values = new ContentValues(); 
     values.put(CalendarContract.Reminders.EVENT_ID, Long.parseLong(event.getLastPathSegment())); 
     values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT); 
     values.put(CalendarContract.Reminders.MINUTES, 10); 
     cr.insert(REMINDERS_URI, values); 
    } 

사람이 안드로이드

답변

1

는 Calendar.set에서 일정 이벤트에 AM/PM 필터를 구성하는 방법을 안내 주시겠습니까 (Calendar.HOUR_OF_DAY,있는 Integer.parseInt (시간));

HOUR_OF_DAY를 사용하면 24 시간 형식으로 시간을 설정합니다 (오후 6시는 18 시간). HOUR_OF_DAY를 사용하면 am/pm을 쓸모 없게 만듭니다. 24 시간 형식을 사용하고 am/pm을 수동으로 설정하십시오. 캘린더는 자동으로 오전/오후 형식으로 변환합니다.

+0

내가 생각하기에 실수로 24 시간 동안 실험했지만 코드 줄이 두 번 설정되었으므로 그다지 효과가 없었다. 그것은 일했다! – KOTIOS