Właśnie uczę się obsługi Kalendarzy Android. Do tej pory mogę wyświetlać informacje o istniejących kalendarze. Mogę również tworzyć własne lokalne kalendarze - kod testowy jak:Dostawca kalendarza Androida: Jak mogę usunąć własne kalendarze lokalne?
private void createCalendarTest()
{
Uri.Builder builder = Calendars.CONTENT_URI.buildUpon();
builder.appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, "private")
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
Uri uri = builder.build();
ContentValues values = new ContentValues();
values.put(Calendars.NAME, "TEST");
values.put(Calendars.CALENDAR_DISPLAY_NAME, "Calendar named TEST");
values.put(Calendars.SYNC_EVENTS, false);
values.put(Calendars.VISIBLE, true);
getContentResolver().insert(uri, values);
}
Właściwie mogę utworzyć wiele kalendarzy, które różnią się tylko w _ID
. Czytałem gdzie indziej, że mogę utworzyć kalendarz tylko przy użyciu adaptera synchronizacji. Jak mogę usunąć kalendarz? Oczekuję, że identyfikator URI musi również zawierać informacje o adapterze synchronizacji i _ID
usuniętego kalendarza. Wypróbowałem poniższy kod, ale nie udało się:
private void deleteCalendarTest()
{
Uri.Builder builder = Calendars.CONTENT_URI.buildUpon();
builder.appendPath("6") // here for testing; I know the calender has this ID
.appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, "private")
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
Uri uri = builder.build();
getContentResolver().delete(uri, null, null);
Toast.makeText(this, "??? deleteCalendarTest() not working", Toast.LENGTH_SHORT).show();
}
Jak mogę to naprawić?
Czy znalazłeś jakieś rozwiązanie problemu? Jestem w tej samej sytuacji, co ty! –
Nie, nie naprawiłem tego. Ta część projektu została zatrzymana i nie kontynuowałem poszukiwania rozwiązania. – pepr
Znalazłem rozwiązanie i odpowiedziałem na pytanie ... może to pomoże komuś innemu! –