Как прикрепить личные данные к событию календаря Android - PullRequest
13 голосов
/ 20 февраля 2012

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

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

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)

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

1 Ответ

0 голосов
/ 28 декабря 2013

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...