Составители:
Рубрика:
130
Контактная информация хранится в классах-контейнерах. Эти классы не являются производными
от QObject, могут быть использованы в списках, не имеют родителей, не выбрасывают сигналы, и так
далее. Они представляют собой данные, которыми можно манипулировать и извлекать из менеджера.
Контакты (Contact)
Под «Контактом» имеется в виду цифровое представление лица, группы, или организации,
которое хранится платформо-специфичным образом. Информация, касающаяся одного контакта
может храниться в разных хранилищах данных и каждая единица данных (или деталь), может как
относиться, так и не относиться к конкретному контексту в котором она верна.
Контакт может включать в себя семантически идентичные детали, верные в разных контекстах.
Например, контакт может иметь телефонный номер, который имеет отношение к контексту его
«дома» и другой телефонный номер, который имеет отношение к его «работе».
Деталь (Detail)
Под «Деталью» имеется в виду единая, сплочённая единица информации, которая хранится в
контакте. Как объяснялось ранее, она справедлива для определенного контекста, или набора
контекстов, и соответствует конкретному определению. Деталь может иметь ассоциированные с ней
специальные метаданные, такие как её подтип, контекст и границы, определяемые пользователем
метаданные, также как и ограничения доступа, которые могут применяться к детали (например,
«только для чтения», «неудаляемое» и т. д.).
Отношения (Relationships)
Контакты могут участвовать в отношениях с другими контактами. Подробная информация о
любых таких отношениях хранится менеджером, который содержит контакт. Есть несколько
стандартных типов отношений, поддерживаемых стандартной схемой и произвольные типы
отношений, которые допускается, если менеджер поддерживает эту функцию. Одним из важных
отношений является «групповое отношение» — членство контакта в группе может быть
смоделировано как если бы контакт группы участвовал в отношении hasMember с контактом. За
работу с отношениями отвечает класс QContactRelationship.
Доступ к данным
Доступ к контактам осуществляется по средствам интерфейсов модуля Manager. Менеджер
предоставляет доступ к хранилищам данных, поддерживаемым платформой. Каждое хранилище
может поддерживать разные возможности (например, возможность хранения определенных типов
данных, способность к родному фильтру на различные детали, или детали различных определений,
обеспечение механизмов блокировки, предоставление изменений информации и т.д.), которые
сообщаются менеджером по запросу. Кроме того, менеджер предоставляет доступ к деталям
определений, контактам и отношениям, хранящимся в различных типах хранилищ данных, в
платформо- и хранилище-независимом образах.
Для получения списка всех имеющихся менеджеров может быть использована функция
QContactManager:: availableManagers(). Каждый менеджер идентифицируется URI. URI состоит из
имени менеджера, любых соответствующих параметров, которые были использованы при создании
его экземпляра и его версии. Хотя имя менеджера определяет плагин, который обеспечивает
функциональность, вы не можете гарантировать, что данные, доступные через один менеджер будет
доступна через другой с таким же именем (например, если один параметр говорит плагину хранить и
извлекать контактную информацию из сим-карты, а другой из локального хранилища).
Для работы с менеджером рекомендуется использовать ассинхронный интерфейс доступа к
данным, т. е. такой интерфейс, использующий неблокирующие, асинхронные запросы. Для
большинства приложений рекомендуется использование именно этот способ.
Асинхронный интерфейс включает в себя следующие классы, полученные из класса
QContactAbstractRequest – QContactLocalIdFetchRequest ,
QContactFetchRequest,
Страницы
- « первая
- ‹ предыдущая
- …
- 128
- 129
- 130
- 131
- 132
- …
- следующая ›
- последняя »
