Не в состоянии прочитать время из родного события календаря - PullRequest
0 голосов
/ 06 марта 2012

Я создал заявку на определенную дату и время в календаре Blackberry, я пытаюсь прочитать дату и время, используя следующий код, но он показывает ошибку.

 private void getEvents() {
          try {

             EventList eventList = (EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_ONLY);
             Enumeration events = eventList.items();
              while (events.hasMoreElements()) {
               Event event = (Event)events.nextElement();

               if(eventList.isSupportedField(Event.ALARM) && event.countValues(Event.ALARM) > 0) {
                    long alarm = event.getDate(Event.ALARM, 0); 
                    System.out.println(alarm);
               }

           }

           }

Я не уверен, чтоневерно в цикле if

1 Ответ

0 голосов
/ 06 марта 2012

Поле Event.ALARM содержит:

Поле, указывающее относительное время для сигнала тревоги для этого события.Данные для этого поля выражаются типом данных INT.Тревога выражается в секундах и выводится путем вычитания значения тревоги из каждой даты / времени возникновения этого события.Например, если это поле имеет значение 600, то аварийный сигнал сначала срабатывает за 600 секунд до значения даты / времени, указанного в Event.START.Для повторных вхождений события сигнал тревоги рассчитывается путем вычитания сохраненного значения из даты / времени определенного события.

Таким образом, вам необходимо получить значение из поля Event.STARTдля даты / времени начала мероприятия.Затем вы можете вычесть значение Event.ALARM (в секундах) из начальной даты / времени, чтобы получить время для любого запрошенного напоминания.

long start = event.getDate(Event.START);
int alarm = event.getDate(Event.ALARM);
if (alarm > 0) {
   long reminderTime = start - (long)alarm * 1000L;
   ...
}

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy HH:mm");
String dateString = sdf.formatLocal(start);
...