Spec-Zone.ru › Qt

Изменения в Qt NFC

Qt 6 — результат целенаправленных усилий по повышению эффективности и удобства использования фреймворка.

Мы стремимся поддерживать бинарную и исходную совместимость всех публичных API в каждом релизе. Но некоторые изменения были неизбежны для улучшения Qt как фреймворка.

В этом разделе мы подводим итог этим изменениям в Qt NFC и даём рекомендации по их обработке.

Новые возможности и методы

Добавлен QNdefRecord::clear()

Используйте этот метод для очистки записи NDEF.

Добавлен QNdefFilter::match()

Используйте этот метод для проверки соответствия QNdefMessage заданному фильтру. Метод возвращает true в случае успешного соответствия и false в противном случае.

Расширен QNearFieldTarget::Type

Перечисление было расширено двумя дополнительными типами:

  • QNearFieldTarget::NfcTagType4A
  • QNearFieldTarget::NfcTagType4B

Изменения в функциях и методах

Переименован QNearFieldManager::isAvailable()

QNearFieldManager::isAvailable() был переименован в QNearFieldManager::isEnabled().

Добавлен аргумент метода доступа к QNearFieldManager::isSupported

Аргумент accessMethod позволяет проверить, поддерживается ли конкретная функция. Это актуально, так как различные платформы или версии операционных систем могут поддерживать разные опции.

Добавлен аргумент метода доступа к QNearFieldManager::startTargetDetection

Аргумент accessMethod позволяет сканировать NFC-метки с указанным методом доступа.

Изменён QNdefNfcSmartPosterRecord::typeInfo с QByteArray на QString

Согласно спецификации NDEF Smart Poster, тип является строкой в формате UTF-8. Это влияет на методы QNdefNfcSmartPosterRecord::typeInfo() и QNdefNfcSmartPosterRecord::setTypeInfo().

Изменён тип возвращаемого значения QNdefFilter::appendRecord

QNdefFilter::appendRecord теперь выполняет базовую валидацию входных параметров и возвращает логическое значение, указывающее, была ли запись добавлена в фильтр или нет.

Удаленные возможности и методы

Удален QNearFieldTarget::url

Метод никогда не был реализован в существующих подклассах QNearFieldTarget.

Удален QNearFieldTarget::sendCommands

В Qt 5 метод не был особо полезен, так как не предоставлял способа отслеживать результаты промежуточных команд. Обычно дополнительная команда должна отправляться только после успешного выполнения предыдущей команды.

Правильный подход — вручную создать очередь команд, использовать QNearFieldTarget::sendCommand для отправки команды и QNearFieldTarget::requestCompleted или QNearFieldTarget::error для обработки результатов каждой команды индивидуально.

Удален QNearFieldTarget::keepConnection

Методы QNearFieldTarget::keepConnection() и QNearFieldTarget::setKeepConnection() были удалены. Поддержание соединения по умолчанию в настоящее время.

Удален QNearFieldTarget::isProcessingCommand

Метод никогда не был реализован и всегда возвращал false.

Метод QNearFieldTarget::setResponseForRequest стал закрытым API

Метод не должен предоставляться как публичный API. Используйте QNearFieldTarget::ndefMessageRead или QNearFieldTarget::requestResponse для чтения данных с NFC-метки.

Удален QNearFieldTarget::handleResponse

Метод был удалён, так как просто перенаправлял вызов в QNearFieldManager::setResponseForRequest, который стал закрытым API.

Метод QNearFieldTarget::reportError стал закрытым API

Вместо этого можно использовать сигнал QNearFieldTarget::error.

Удален сигнал QNearFieldTarget::ndefMessagesWritten

Сигнал QNearFieldTarget::requestCompleted используется как для NDEF-сообщений, так и для пользовательских команд. Параметр id может использоваться для проверки, какая именно команда завершена.

Удалены QNearFieldManager::(un)registerNdefMessageHandler

Методы QNearFieldTarget::registerNdefMessageHandler и QNearFieldTarget::unregisterNdefMessageHandler были удалены.

Используйте QNearFieldTarget::ndefMessageRead() и QNdefFilter::match() для обнаружения NDEF-сообщений и фильтрации необходимых.

Примечание: Приложение всё ещё может автоматически запускаться после касания NFC-метки. Пример Annotated URL показывает, как это сделать на Android.

Удалено QNearFieldManager::TargetAccessModes

Перечисление TargetAccessModes было удалено вместе со способами получения и установки его значений (QNearFieldManager::setTargetAccessModes() и QNearFieldManager::targetAccessModes()).

Функция не поддерживается на платформах Android и iOS.

Удалены QNearFieldShareManager и QNearFieldShareTarget

Обмен файлами через NFC устарел на Android в API 29. Следует использовать другие технологии.

Удален QML API

Поддержка QML API прекращена.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtnfc-changes-qt6.html

Spec-Zone.ru

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