변경 사항 Qt Bluetooth

Qt 6는 프레임워크를 보다 효율적이고 사용하기 쉽게 만들기 위한 의식적인 노력의 결과입니다.

각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하려고 노력합니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위해 몇 가지 변경이 불가피했습니다.

이 주제에서는 이러한 변경 사항을 QtBluetooth 에 요약하고 이를 처리하기 위한 지침을 제공합니다.

일반

  • qbluetoothglobal.h가 제거되었습니다. 같은 목적을 가진 공식 헤더는 qtbluetoothglobal.h입니다.
  • QVector 의 모든 사용법은 QList 으로 대체되었습니다.
  • Win32 백엔드가 제거되었습니다. Qt가 mingw로 빌드될 때 작동하는 Bluetooth 백엔드가 없습니다.
  • 이제 Windows 백엔드가 하나만 있기 때문에 로깅 범주인 Qt.bluetooth.winrt가 제거되었습니다. 해당 로그 메시지는 이제 qt.bluetooth.windows에 있습니다.

QBluetooth 네임스페이스

열거형 QBluetooth::SecurityQBluetooth::AttAccessConstraint 은 유형 안전성을 향상시키기 위해 범위 지정 열거형으로 변경되었습니다.

QBluetoothDeviceDiscoveryAgent

QBluetoothDeviceDiscoveryAgent::inquiryType 속성 및 관련 세터/겟터 및 열거 형이 제거되었습니다. 이 API 요소는 구현 및/또는 지원되지 않았습니다.

QBluetoothDeviceInfo

  • manufacturerData()는 QHash 이 아닌 QMultiHash 을 반환합니다. Qt 6 QMultiHash 은 더 이상 QHash 에서 파생되지 않기 때문입니다.
  • 관련 API 요소가 더 이상 목적에 부합하지 않으므로 DataCompleteness는 대체되지 않고 제거되었습니다.
  • setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness)는 setServiceUuids(const QList<QBluetoothUuid> &uuids)로 대체되었습니다.
  • 데이터 완성도 serviceUuidsCompleteness() const가 대체되지 않고 제거되었습니다.
  • QList<QBluetoothUuid> serviceUuids(DataCompleteness *완성도 = nullptr) const가 QList<QBluetoothUuid> serviceUuids() const로 대체되었습니다.

QBluetoothLocalDevice

페어링 에이전트 관련 API가 대체되지 않고 제거되었습니다. 여기에는 pairingConfirmation(bool), pairingDisplayPinCode(..) & pairingDisplayConfirmation(..)이 포함됩니다. 안드로이드와 블루즈 4를 제외하고는 구현된 적이 없습니다. 블루즈 4 지원은 Qt 6에서 제거되었고 안드로이드의 구현은 적어도 코드의 일부에 대해 BLUETOOTH_PRIVILEGED를 얻을 수 없어야 했습니다.

QLowEnergyService

ServiceState 열거형 값의 이름이 변경되었습니다:

이 변경은 향후 서비스 검색이 선택적 단계가 될 수 있음을 예상하여 이루어졌습니다.

QBluetoothUuid

열거형 ProtocolUuid, ServiceClassUuid, CharacteristicType, DescriptorType 은 이제 범위 지정 열거형입니다. 열거형 항목의 사용법은 사용자 코드에서 조정해야 합니다.

QLowEnergyController

  • 원격 QBluetoothAddress 매개 변수가 있는 기존 ctors 및 create*() 함수가 제거되었습니다. QBluetoothAddress 은 Apple 시스템에서 원격 장치를 나타내는 데 충분하지 않습니다. 장치의 '이름'을 지정하려면 UUID가 필요합니다. 이는 QBluetoothDeviceInfo 으로만 충족할 수 있습니다.
  • 나머지 QLowEnergyController 함수는 비공개로 전환되었습니다. QLowEnergyController 인스턴스를 얻으려면 createPeripheral() 및 createCentral() 함수를 사용해야 합니다.

QLowEnergyCharacteristic

  • 클라이언트 특성 구성 설명자를 편리하게 가져올 수 있는 새로운 메서드 clientCharacteristicConfiguration()이 도입되었습니다.
  • 클라이언트 특성 구성 설명자의 사용 가능한 값을 저장하는 상수 CCCDDisable, CCCDEnableNotification, CCCDEnableIndication 이 도입되었습니다.
  • handle() 메서드는 더 이상 공용 Bluetooth LE 인터페이스의 일부가 아닙니다. 특성 식별자로서의 용도가 대체되었습니다. QLowEnergyCharacteristic 인스턴스 자체가 식별자 역할을 합니다.

QLowEnergyDescriptor

handle() 메서드는 더 이상 공용 Bluetooth LE 인터페이스의 일부가 아닙니다. 설명자의 식별자로서의 용도가 대체되었습니다. QLowEnergyDescriptor 인스턴스 자체가 식별자 역할을 합니다.

QBluetoothTransferManager

QBluetoothTransferManager, QBluetoothTransferRequest 및 QBluetoothTransferReply가 대체되지 않고 제거되었습니다.

QBluetoothSocket

QBluetoothSocket::SocketStateQBluetoothSocket::SocketError 은 이제 범위가 지정된 열거형입니다. 열거형 항목의 사용법은 사용자 코드에서 조정해야 합니다.

QML 인터페이스

QML을 통한 소켓 프로그래밍은 바람직하지 않으므로 QML 인터페이스가 제거되었습니다. QDeclarativeBluetoothService, QDeclarativeBluetoothSocket 및 QDeclarativeBluetoothDiscoveryModel(QML: BluetoothService, BluetoothSocket 및 BluetoothDiscoveryModel)은 대체되지 않고 제거되었습니다.

"오류" 신호

QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer, QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController, QLowEnergyService 의 "오류" 신호는 "오류" 신호와 "오류" 게터 간의 모호성을 제거하기 위해 "errorOccurred"로 이름이 변경되었습니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.