Spec-Zone.ru › Qt 5.6

Класс QNearFieldManager

Класс QNearFieldManager предоставляет доступ к уведомлениям о событиях NFC. Подробнее...

Заголовок: #include <QNearFieldManager>
qmake: QT += nfc
С момента: Qt 5.2
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы публичного доступа

Перечисление TargetAccessMode { NoTargetAccess, NdefReadTargetAccess, NdefWriteTargetAccess, TagTypeSpecificTargetAccess }
флаги TargetAccessModes

Функции публичного доступа

QNearFieldManager(QObject *parent = Q_NULLPTR)
~QNearFieldManager()
bool isAvailable() const
int registerNdefMessageHandler(QObject *object, const char *method)
int registerNdefMessageHandler(QNdefRecord::TypeNameFormat typeNameFormat, const QByteArray &type, QObject *object, const char *method)
int registerNdefMessageHandler(const QNdefFilter &filter, QObject *object, const char *method)
void setTargetAccessModes(TargetAccessModes accessModes)
bool startTargetDetection()
void stopTargetDetection()
TargetAccessModes targetAccessModes() const
bool unregisterNdefMessageHandler(int handlerId)
  • 31 функция унаследованная от QObject

Сигналы

void targetDetected(QNearFieldTarget *target)
void targetLost(QNearFieldTarget *target)
  • 2 сигнала унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 слот публичного доступа, унаследованный от QObject
  • 11 статические члены публичного доступа, унаследованные от QObject
  • 9 защищённые функции, унаследованные от QObject

Подробное описание

Класс QNearFieldManager предоставляет доступ к уведомлениям о событиях NFC.

Устройства NFC Forum поддерживают два режима связи. Первый режим, peer-to-peer, используется для связи между двумя устройствами NFC Forum. Второй режим, master/slave, используется для связи между устройством NFC Forum и меткой NFC Forum или бесконтактной картой. Сигнал targetDetected() генерируется, когда устройство-цель входит в зону действия связи. Связь может быть инициирована из слота, подключенного к этому сигналу.

Устройства NFC Forum обычно работают в режиме master в связи master/slave. Некоторые устройства также способны работать в режиме slave, так называемом режиме эмуляции карты. В этом режиме локальное NFC-устройство эмулирует метку NFC Forum или бесконтактную карту.

Метки NFC Forum могут содержать одно или несколько сообщений в стандартном формате. Эти сообщения инкапсулированы классом QNdefMessage. Используйте функции registerNdefMessageHandler(), чтобы зарегистрировать обработчики сообщений с определёнными критериями. Обработчики могут быть аннулированы функцией unregisterNdefMessageHandler().

Приложения могут подключиться к сигналам targetDetected() и targetLost(), чтобы получать уведомления, когда метка NFC Forum входит или покидает зону действия. Перед тем как эти сигналы будут сгенерированы, обнаружение целей должно быть начато функцией startTargetDetection(). Обнаружение целей может быть остановлено функцией stopTargetDetection(). Перед доступом к обнаруженной цели необходимо запросить права доступа. Это необходимо сделать до касания устройства-цели. Функция setTargetAccessModes() используется для установки типов доступа, которые приложение хочет выполнить для обнаруженной цели. Когда доступ больше не нужен, режимы доступа к цели должны быть установлены в NoTargetAccess, так как другие приложения могут быть заблокированы от доступа к целям. Текущие режимы доступа к цели могут быть проверены функцией targetAccessModes().

Автоматическое запуск обработчиков сообщений NDEF

На некоторых платформах возможно предварительно зарегистрировать приложение для получения сообщений NDEF, соответствующих определённым критериям. Это полезно, чтобы заставить систему автоматически запускать ваше приложение при получении соответствующего сообщения NDEF. Это избавляет от необходимости вручную запускать приложения обработки NDEF до касания метки или иметь эти приложения постоянно запущенными и использующими ресурсы системы.

Процесс регистрации обработчика отличается для каждой платформы. Обратитесь к документации платформы, чтобы узнать, как можно выполнить такую регистрацию. Если приложение зарегистрировано как обработчик сообщений NDEF, приложению необходимо только вызвать функцию registerNdefMessageHandler():

QNearFieldManager *manager = new QNearFieldManager(this);
manager->registerNdefMessageHandler(this,
            SLOT(handleNdefMessage(QNdefMessage,QNearFieldTarget*)));

Автоматический запуск обработчиков сообщений NDEF поддерживается на Android.

NFC в Linux

Проект Linux NFC предоставляет программное обеспечение для поддержки NFC на платформах Linux. Демон neard предоставит доступ к поддерживаемому оборудованию через интерфейсы DBus. QtNfc требует neard версии 0.14, который можно скомпилировать из исходного кода или установить через соответствующий менеджер пакетов Linux. Не все функции API в настоящее время поддерживаются. Для предоставления QtNfc доступа к интерфейсам DBus демон neard должен быть запущен. В случае проблем отладочная информация может быть включена путём включения категорированной записи логов для 'qt.nfc.neard'.

Документация по типам членов

перечисление QNearFieldManager::TargetAccessModeфлаги QNearFieldManager::TargetAccessModes

Это перечисление описывает различные режимы доступа, которые приложение может иметь.

Константа Значение Описание
QNearFieldManager::NoTargetAccess 0x00 Приложению нет доступа к возможностям NFC.
QNearFieldManager::NdefReadTargetAccess 0x01 Приложение может читать сообщения NDEF из целей, вызвав QNearFieldTarget::readNdefMessages().
QNearFieldManager::NdefWriteTargetAccess 0x02 Приложение может писать сообщения NDEF в цели, вызвав QNearFieldTarget::writeNdefMessages().
QNearFieldManager::TagTypeSpecificTargetAccess 0x04 Приложение может получить доступ к целям, используя исходные команды, вызвав QNearFieldTarget::sendCommand().

Тип TargetAccessModes является псевдонимом для QFlags<TargetAccessMode>. Он хранит логическое ИЛИ сочетание значений TargetAccessMode.

Документация по функциям-членам

QNearFieldManager::QNearFieldManager(QObject *parent = Q_NULLPTR)

Создаёт новый менеджер ближнего поля с parent.

QNearFieldManager::~QNearFieldManager()

Уничтожает менеджер ближнего поля.

bool QNearFieldManager::isAvailable() const

Возвращает true, если функциональность NFC доступна, иначе возвращает false.

int QNearFieldManager::registerNdefMessageHandler(QObject *object, const char *method)

Регистрирует object для получения уведомлений о method, когда обнаружен тег с сообщением NDEF, соответствующим предварительно зарегистрированному формату сообщения. Метод method объекта должен иметь прототип 'void targetDetected(const QNdefMessage &message, QNearFieldTarget *target)'.

Возвращает идентификатор, который может быть использован для отмены регистрации обработчика, при успехе; в противном случае возвращает -1.

Эта функция используется для регистрации экземпляра QNearFieldManager для получения уведомлений, когда получено сообщение NDEF, соответствующее предварительно зарегистрированному формату сообщения. См. раздел Автоматическое запуска обработчиков сообщений NDEF.

Примечание: Параметр target метода может быть недоступен на всех платформах, в этом случае target будет равен 0.

int QNearFieldManager::registerNdefMessageHandler(QNdefRecord::TypeNameFormat typeNameFormat, const QByteArray &type, QObject *object, const char *method)

Регистрирует object для получения уведомлений о method, когда обнаружен тег и содержит запись NDEF, соответствующую typeNameFormat и type. Метод method объекта должен иметь прототип 'void targetDetected(const QNdefMessage &message, QNearFieldTarget *target)'.

Возвращает идентификатор, который может быть использован для отмены регистрации обработчика, при успехе; в противном случае возвращает -1.

Примечание: Параметр target метода может быть недоступен на всех платформах, в этом случае target будет равен 0.

Примечание: На платформах, использующих neard, регистрация обработчиков сообщений не поддерживается.

int QNearFieldManager::registerNdefMessageHandler(const QNdefFilter &filter, QObject *object, const char *method)

Регистрирует object для получения уведомлений о method, когда обнаружен тег с сообщением NDEF, соответствующим filter. Метод method объекта должен иметь прототип 'void targetDetected(const QNdefMessage &message, QNearFieldTarget *target)'.

Возвращает идентификатор, который может быть использован для отмены регистрации обработчика, при успехе; в противном случае возвращает -1.

Примечание: Параметр target метода может быть недоступен на всех платформах, в этом случае target будет равен 0.

void QNearFieldManager::setTargetAccessModes(TargetAccessModes accessModes)

Устанавливает запрошенные режимы доступа к целевому устройству в accessModes.

См. также targetAccessModes().

bool QNearFieldManager::startTargetDetection()

Начинает обнаружение целевых устройств и возвращает true, если обнаружение успешно запущено; в противном случае возвращает false. Вызывает эмиссию сигнала targetDetected() при обнаружении целевого устройства в близости.

Примечание: Для платформ, использующих neard, обнаружение целевых устройств остановится сразу же после обнаружения тега.

См. также stopTargetDetection().

void QNearFieldManager::stopTargetDetection()

Останавливает обнаружение целевых устройств. Сигнал targetDetected() больше не будет эмитироваться до тех пор, пока не будет выполнен ещё один вызов startTargetDetection().

TargetAccessModes QNearFieldManager::targetAccessModes() const

Возвращает текущие запрошенные режимы доступа к целевому устройству.

См. также setTargetAccessModes().

void QNearFieldManager::targetDetected(QNearFieldTarget *target)

Этот сигнал эмитируется всякий раз, когда обнаруживается целевое устройство. Параметр target представляет собой обнаруженное целевое устройство.

Этот сигнал будет эмитироваться для всех обнаруженных целевых устройств.

QNearFieldManager удерживает владение target, однако он не будет уничтожен до вызова деструктора QNearFieldManager. Владение может быть передано с помощью вызова setParent().

Не удаляйте target из слота, подключенного к этому сигналу, вместо этого используйте deleteLater().

Примечание: если target будет удалён до того, как он уйдёт из зоны действия, сигнал targetLost() не будет эмитирован.

См. также targetLost().

void QNearFieldManager::targetLost(QNearFieldTarget *target)

Этот сигнал эмитируется всякий раз, когда целевое устройство покидает зону действия. Параметр target представляет собой потерянное целевое устройство.

Не удаляйте target из слота, подключенного к этому сигналу, вместо этого используйте deleteLater().

См. также QNearFieldTarget::disconnected().

bool QNearFieldManager::unregisterNdefMessageHandler(int handlerId)

Отменяет регистрацию обработчика обнаружения целевого устройства, идентифицированного по handlerId.

Возвращает true при успехе; в противном случае возвращает false.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnearfieldmanager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API