Об API, который может меняться ... Весь подход ContentProvider не изменится так быстро, поэтому уже может решить множество проблем, только обновляя строки. Для этого создайте константы, которые вы повторно используете для всего проекта.
public static final String URI_CONTENT_CALENDAR_EVENTS = "content://calendar/events";
ContentResolver contentResolver = context.getContentResolver();
Cursor cursor = contentResolver.query(Uri.parse(URI_CONTENT_CALENDAR_EVENTS), null, null, null, null);
//etc
Если вам нужен правильный частный API, вам нужно создать pojo и некоторые сервисы, подобные этому:
public class CalendarEvent {
private long id;
private long date;
//etc...
}
public interface CalendarService {
public Set<CalendarEvent> getAllCalendarEvents();
public CalendarEvent findCalendarEventById(long id);
public CalendarEvent findCalendarEventByDate(long date);
}
и так далее. Таким образом, вам нужно будет только обновить объект CalendarEvent и эту службу в случае изменения API.