Как прикрепить личные данные к событию календаря Android

Как мы можем прикрепить некоторые дополнительные данные к событию календаря, такие как файлы, фотографии, простая строка и т.д..

я использовал расширенные свойства и смог вставить некоторые дополнительные данные через расширенные свойства

Uri extendedProperties=Uri.parse("content://com.android.calendar/extendedproperties");
ContentValues extendedValues=new ContentValues();
extendedValues.put("event_id", id);
extendedValues.put("name",key);
extendedValues.put("value",value);
getApplicationContext().getContentResolver().insert(extendedProperties, extendedValues);

и позже сможет получить эти данные, как показано ниже

Uri extentdedProperties=Uri.parse("content://com.android.calendar/extendedproperties");
CursorextendedPropertires Cursor=getContentResolver().query(extentdedProperties,null,"event_id = "+Id +",null,null);

Он отлично работает с Android 2.2 ... Тот же код, если он тестировался в Android 4.0 (бутерброд с мороженым). Выдает ошибку о том, что только адаптеры синхронизации могут получить доступ к содержимому: // com.android.calendar/extendedproperties.

Поэтому я выполнил запрос как «callerissyncadapter». Теперь я могу вставлять расширенные свойства. Но как только событие синхронизируется с сервером, расширенные свойства удаляются сервером.

Даже эти расширенные свойства не полностью поддерживаются поставщиками календарей (кроме Google).

Есть ли способ прикрепить некоторые дополнительные данные к событию календаря, кроме расширенных свойств, или мы можем лучше использовать эти расширенные свойства.


person Sai mukesh    schedule 20.02.2012    source источник


Ответы (1)


Не используйте callerissyncadapter, если только вы не являетесь адаптером синхронизации. Установка значения true приведет к тому, что наблюдатели контента на устройстве не будут уведомлены об изменениях контента у этого поставщика, а ваши изменения не будут сохраняться на сервере.

Почему вы пытаетесь это сделать? Вы пытаетесь связать некоторые данные для вашего приложения с событием календаря?

Если да, то почему бы не создать собственное закрытое хранилище данных (или контент-провайдер) с вашим приложением и не индексировать дополнительные свойства по ключу событий в календаре контент-провайдера? Таким образом, у вас есть связь между данными вашего приложения и данными поставщика содержимого общедоступных контактов.

person Warlax    schedule 28.12.2013
comment
Не существует надежного способа сохранить ключ к событию в частном магазине. И _id, и _sync_id события могут измениться, если вы удалите и снова добавите учетную запись события, например. Аккаунт биржевого типа. - person OferR; 07.05.2014