Spec-Zone.ru › Qt 5.9

Класс 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)
  • 32 открытых функций, унаследованных от QObject

Сигналы

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

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

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

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

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

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

Устройства NFC Forum обычно работают в режиме «мастер» в связи «мастер/раб». Некоторые устройства также могут работать в режиме «раб», так называемый режим эмуляции карты. В этом режиме локальное устройство 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 с операцией OR.

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

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/qt-5.9/qnearfieldmanager.html

Spec-Zone.ru

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