2

알림 기능이있는 애플리케이션을 개발 중입니다. 내가 사용한 코드는 다음과 같이 알림 및 이벤트를 설정하는 것입니다.Android : 알림 기능 설정

private void addReminder(int statrYear, int startMonth, int startDay, int startHour, int startMinut, String title){ 
    // Convert start of begin time of reminder in milliseconds. 
    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"; 

    // Creation of Event. 
    ContentValues eventValues = new ContentValues(); 
    // Set calendar as 1 for default calendar. 
    eventValues.put(Events.CALENDAR_ID, 1); 
    // Set title as user define. 
    eventValues.put(Events.TITLE, title); 
    // Set description as user define. 
    eventValues.put(Events.DESCRIPTION, "MYApp"); 
    // Set location as user define. 
    eventValues.put(Events.EVENT_TIMEZONE, "India"); 
    // Set start time as system time or time converted in milliseconds. 
    eventValues.put(Events.DTSTART, startMillis); 
    // Set status of event as 1. 
    eventValues.put("eventStatus", 1); 
    // Set visibility of event as 3 (public). 
    eventValues.put("visibility", 3); 
    // Set transparency as 0. No other app seen through reminder. 
    eventValues.put("transparency", 0); 
    // Set alarm as 1. Ringing. 
    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(); 

    // Set reminder on Event ID. 
    reminderValues.put("event_id", eventID); 
    // Set reminder minute before. 
    reminderValues.put("minutes", 1); 
    // Set method of reminder 
    reminderValues.put("method", 1);   

    @SuppressWarnings("unused") 
    //Setting reminder in calendar on Event. 
    Uri reminderUri = getContentResolver().insert(Uri.parse(reminderUriString), reminderValues); 
} 

위 코드는 정상적으로 실행되고 있습니다. 이제 응용 프로그램의 필요가 :

  1. 방법 알림 ID를 얻을 수 있습니다.
  2. 위의 코드로 프로그래밍 방식으로 설정 한 캘린더에서 알림을 삭제하는 방법.
  3. 프로그래밍 방식으로 기존 미리 알림을 편집하는 방법.
  4. 알림을 만드는 방법, 캘린더에 숨겨져 있으며 알람 시간에만 보입니다.

의견을 보내주십시오.

답변

1

A. 미리 알림 ID를받는 방법.

Long reminderID = Long.parseLong(reminderUri.getLastPathSegment()); 

B. programmetically 위의 코드가 설정 한 내 캘린더에서 알림을 삭제하는 방법으로

당신은 당신의 알림 ID를 얻을 수 있습니다.

다음 코드를 호출하여 캘린더에서 알림을 삭제할 수 있습니다

Uri reminderUri = Uri.parse("content://com.android.calendar/reminders"); 
reminderUri = Uri.withAppendedPath(reminderUri, String.valueOf(reminderID)); 
context.getContentResolver().delete(reminderUri, null, null); 

C. 어떻게 programmetically 기존 알림을 편집 할 수 있습니다.

업데이트 이벤트

Uri updateEventUri = Uri.withAppendedPath(Uri.parse("content://com.android.calendar/events"), String.valueOf(eventID)); 
context.getContentResolver().update(updateEventUri, eventValues, null, null); 

업데이트 알림

Uri updateReminderUri = Uri.withAppendedPath(Uri.parse("content://com.android.calendar/reminders"), String.valueOf(Utility.eventID)); 
context.getContentResolver().update(updateReminderUri, reminderValues, null, null); 
을 :

당신은 다음 코드에서 동일한 이벤트 ID와 알림에 새로운 업데이트 필드를 설정하여 알림을 업데이트 할 수 있습니다