Korzystam z dostawcy Kalendarza na Androida, aby wyświetlać wydarzenia. Powiążę także zdarzenia z obrazami z lokalnej bazy danych aplikacji, używając EVENT_ID zdarzenia jako punktu odniesienia.Dostawca kalendarza systemu Android: Czy istnieje unikalny identyfikator zdarzeń, który można wykorzystać na wielu urządzeniach?
Zastanawiam się teraz, czy możliwe jest zachowanie tego samego odniesienia na wielu urządzeniach?
Rozumiem, że dla konta account_type = "com.google", GoogleCalendarSyncAdapter używa CalendarContract.EventsColumns.SYNC_DATA1 do przechowywania identyfikatora googleID zdarzenia. Jednak wydaje się, że nie jest to niezawodny sposób dostępu do danych, ponieważ użycie kolumny SYNC_DATA może się zmienić w dowolnym momencie i może być modyfikowane tylko przez SyncAdapter.
Czy istnieje inny sposób, w jaki mogę zachować odniesienie do zdarzenia dostawcy kalendarza na różnych urządzeniach?
Dzięki, to jest trochę hackowania, ale chyba jedyny sposób na zrobienie tego. Problem polega na tym, że inne aplikacje mogą wyświetlać, modyfikować lub usuwać uczestnika, więc prawdopodobnie nie jest to warte ryzyka. –
@ ChristusMasser Nie martw się o inne aplikacje, martw się o użytkownika i powiedz mu, aby nie usuwał tych automatycznie generowanych uczestników, ponieważ leży to w ich własnym interesie. Z punktu widzenia interfejsu CalendarContract API - według mojej wiedzy - nie ma innego sposobu dodawania meta-informacji do zdarzenia. Tylko SyncAdapters ma ten przywilej. Możesz jednak interfejsować interfejs API Kalendarza Google bezpośrednio i użyć obiektu 'extendedProperties', który może zawierać pary dowolnych danych dla danej aplikacji. Zobacz tutaj: https://developers.google.com/google-apps/calendar/v3/reference/events – tiguchi