このページでは

QBluetoothLocalDevice Class

QBluetoothLocalDevice クラスを使用すると、ローカルの Bluetooth デバイスにアクセスできます。詳細...

ヘッダー: #include <QBluetoothLocalDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)
qmake: QT += bluetooth
継承元: QObject

パブリック型

enum Error { NoError, PairingError, MissingPermissionsError, UnknownError }
enum HostMode { HostPoweredOff, HostConnectable, HostDiscoverable, HostDiscoverableLimitedInquiry }
enum Pairing { Unpaired, Paired, AuthorizedPaired }

パブリック関数

QBluetoothLocalDevice(QObject *parent = nullptr)
QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)
virtual ~QBluetoothLocalDevice()
QBluetoothAddress address() const
QList<QBluetoothAddress> connectedDevices() const
QBluetoothLocalDevice::HostMode hostMode() const
bool isValid() const
QString name() const
QBluetoothLocalDevice::Pairing pairingStatus(const QBluetoothAddress &address) const
void powerOn()
void requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
void setHostMode(QBluetoothLocalDevice::HostMode mode)

シグナル

void deviceConnected(const QBluetoothAddress &address)
void deviceDisconnected(const QBluetoothAddress &address)
(since 6.2) void errorOccurred(QBluetoothLocalDevice::Error error)
void hostModeStateChanged(QBluetoothLocalDevice::HostMode state)
void pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

静的パブリックメンバー

QList<QBluetoothHostInfo> allDevices()

詳細な説明

QBluetoothLocalDevice は、ローカルの Bluetooth デバイスの状態を取得および設定するための関数を提供します。

iOS では、プラットフォームがローカル Bluetooth デバイスに関する情報を提供するデータや API を公開していないため、このクラスを使用することはできません。

メンバ型のドキュメント

enum QBluetoothLocalDevice::Error

この列挙型は、返される可能性のあるエラーを表します

定数値説明
QBluetoothLocalDevice::NoError0既知のエラーなし
QBluetoothLocalDevice::PairingError1ペアリングエラー
QBluetoothLocalDevice::MissingPermissionsError (since Qt 6.4)2オペレーティングシステムが、ユーザーによって許可されていない権限を要求しています。
QBluetoothLocalDevice::UnknownError100不明なエラー

enum QBluetoothLocalDevice::HostMode

この列挙型は、ローカルのBluetoothデバイスの大部分を表しています。

定数値説明
QBluetoothLocalDevice::HostPoweredOff0デバイスの電源を切る
QBluetoothLocalDevice::HostConnectable1以前にペアリング済みであるか、またはアドレスが判明しているリモート Bluetooth デバイスは、ローカルの Bluetooth デバイスに接続できます。これにより、デバイスの電源がオフになっていた場合は電源が入ります。
QBluetoothLocalDevice::HostDiscoverable2リモート側のBluetoothデバイスは、ローカル側のBluetoothデバイスの存在を検出できます。このとき、デバイスは接続可能状態になり、電源もオンになります。Androidでは、このモードは最大5分間のみ有効です。
QBluetoothLocalDevice::HostDiscoverableLimitedInquiry3リモートBluetoothデバイスは、限定問い合わせ(Limited Inquiry)を実行する際に、ローカルBluetoothデバイスの存在を検出できます。これは、限られた期間のみ検出可能となるサービスを探すために使用すべきです。Limited Inquiryモードになっていないデバイスではサービス検出をスキップできるため、ゲーム機器間の検出を高速化できます。 このモードでは、必要に応じてデバイスは接続可能状態となり、電源もオンになります。このモードはAndroidではサポートされていません。

注:macOSでは 、hostMode()を設定することはできません。報告されるホストモードは、HostPoweredOffおよびHostConnectableに限定されます。

注: Windowsでは 、hostMode() を HostDiscoverable または HostDiscoverableLimitedInquiry に設定することはできません。これらのモードを使用することは、HostConnectable を使用することと同等です。

注: Android 13(API レベル 33)以降、 HostPoweredOff 状態は非公開の Android API に依存しています。これは、公開 API が非推奨となったためです(disable() を参照)。これは将来の Android バージョンで変更される可能性があります。

注:少なくとも Android 12では、 デバイスの Bluetooth 可視性設定によって、HostDiscoverable または HostConnectable の設定結果が左右される場合があります。たとえば、可視性がオフに設定されている場合、HostDiscoverable モードに入れない可能性がありますが、その代わりに HostConnectable が使用されます。これは、将来の Android バージョンで変更される可能性があります。

enum QBluetoothLocalDevice::Pairing

この列挙型は、2つのBluetoothデバイス間のペアリング状態を表します。

定数値説明
QBluetoothLocalDevice::Unpaired0Bluetooth デバイスはペアリングされていません。
QBluetoothLocalDevice::Paired1Bluetooth デバイスがペアリングされています。リモート デバイスがローカル デバイスへの接続を開始すると、システムはユーザーに承認を求めます。
QBluetoothLocalDevice::AuthorizedPaired2Bluetooth デバイスがペアリングされています。リモート デバイスがローカル デバイスへの接続を開始しても、システムはユーザーに承認を求めるプロンプトを表示しません。

メンバ関数のドキュメント

[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(QObject *parent = nullptr)

parent を使用してQBluetoothLocalDeviceを構築します。

注: Android 12(API レベル 31)以降 、このクラスのインスタンス化にはBluetooth ランタイム権限(BLUETOOTH_SCANおよびBLUETOOTH_CONNECT)が必要です。権限が付与されていない場合、デバイスは無効となります。

isValid()も参照してください 。

[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)

address に対して新しい QBluetoothLocalDevice を生成します。address がデフォルトコンストラクタで生成された場合、結果として得られるローカルデバイスはローカルのデフォルトデバイスを選択します。

注: Android 12(API レベル 31)以降 、このクラスの生成にはBluetooth ランタイム権限(BLUETOOTH_SCANおよびBLUETOOTH_CONNECT)が必要です。権限が付与されていない場合、デバイスは無効となります。

isValid()も参照してください 。

[virtual noexcept] QBluetoothLocalDevice::~QBluetoothLocalDevice()

QBluetoothLocalDevice を削除します。

QBluetoothAddress QBluetoothLocalDevice::address() const

このBluetoothデバイスのMACアドレスを返します。

注:Androidでは 、Android 6.0以降、この関数は常に定数値02:00:00:00:00:00 をローカルアドレスとして返します。デバイスのローカルMACアドレスへのプログラムによるアクセスは削除されました。

[static] QList<QBluetoothHostInfo> QBluetoothLocalDevice::allDevices()

利用可能なすべてのローカル Bluetooth デバイスのリストを返します。macOS では、「default」というローカルデバイスしか存在しません。

QList<QBluetoothAddress> QBluetoothLocalDevice::connectedDevices() const

接続済みのデバイスの一覧を返します。この一覧は、現在ペアリングされているデバイスの一覧とは異なります。

Android および macOS では、接続済みデバイスの一覧を取得することはできません。接続状態の変更(接続・切断)を監視することしかできません。利便性を考慮し、このクラスはインスタンス化以降、すべての接続および切断イベントを監視し、この関数が呼び出された際に現在のリストを返します。そのため、インスタンス作成直後など、この関数が空のリストを返す場合があります。

deviceConnected() およびdeviceDisconnected()も参照してください 。

[signal] void QBluetoothLocalDevice::deviceConnected(const QBluetoothAddress &address)

このシグナルは、ローカルデバイスがaddress を使用してリモートデバイスとの接続を確立したときに発生します。

deviceDisconnected() およびconnectedDevices()も参照してください 。

[signal] void QBluetoothLocalDevice::deviceDisconnected(const QBluetoothAddress &address)

このシグナルは、ローカルデバイスがaddress を使用してリモートBluetoothデバイスから切断されたときに発せられます。

deviceConnected() およびconnectedDevices()も参照してください 。

[signal, since 6.2] void QBluetoothLocalDevice::errorOccurred(QBluetoothLocalDevice::Error error)

ペアリング中にerror の例外が発生した場合にシグナルを発行します。

この関数は Qt 6.2 で導入されました。

QBluetoothLocalDevice::HostMode QBluetoothLocalDevice::hostMode() const

このローカル Bluetooth デバイスの現在のホストモードを返します。macOS では、HostPoweredOff またはHostConnectable のいずれかになります。

「setHostMode()」も参照してください 。

[signal] void QBluetoothLocalDevice::hostModeStateChanged(QBluetoothLocalDevice::HostMode state)

ホストのstate は、別のHostMode に移行しました。

bool QBluetoothLocalDevice::isValid() const

QBluetoothLocalDevice が利用可能なローカル Bluetooth デバイスを表している場合は `true ` を返し、そうでない場合は `false` を返します。

このクラスのインスタンスによって表されるローカル Bluetooth アダプタがシステムから削除された場合(例:基盤となる Bluetooth ドングルの取り外し)、このインスタンスは無効になります。すでに無効になっているQBluetoothLocalDevice インスタンスは、同じ Bluetooth アダプタがシステムに復帰した場合でも、引き続き無効のままとなります。

注: Android 12(API レベル 31)以降 、このクラスのインスタンス化にはBluetooth ランタイム権限(BLUETOOTH_SCANおよびBLUETOOTH_CONNECT)が必要です。これらの権限が付与されていない場合、デバイスは無効となります。

関連項目 :allDevices()

QString QBluetoothLocalDevice::name() const

このBluetoothデバイスにユーザーが割り当てた名前を返します。

[signal] void QBluetoothLocalDevice::pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

address により、ペアリングまたはペアリング解除が完了しました。現在のペアリング状態はpairing に格納されています。ペアリング要求が成功しなかった場合、このシグナルは発火しません。ペアリング要求が失敗した場合は、errorOccurred() シグナルが発火します。このシグナルは、現在のオブジェクトインスタンスに対してrequestPairing() を呼び出して事前に要求されたペアリング要求に対してのみ発火します。

QBluetoothLocalDevice::Pairing QBluetoothLocalDevice::pairingStatus(const QBluetoothAddress &address) const

address の現在のBluetoothペアリング状態(ペアリングされていない、ペアリング済み、またはペアリング済みかつ認証済み)を返します。

void QBluetoothLocalDevice::powerOn()

デバイスが電源オフの状態だった場合、hostMode() 状態に戻すと電源が入ります。

注: サポートされているプラットフォームごとにセキュリティポリシーが異なるため 、このメソッドの動作はプラットフォームによって異なる場合があります。たとえば、Bluetooth のオン/オフを切り替える前に、システムがユーザーに確認を求める場合があります。macOS では、Bluetooth のオン/オフを切り替えることはできません。詳細については、各プラットフォーム固有の Bluetooth に関するドキュメントを参照してください。

void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

address を使用して、pairing のステータスを設定します。結果は、pairingFinished() シグナルによって返されます。

AndroidおよびmacOSでは、AuthorizedPaired は利用できず、Pairedと同じ動作となります。Windowsでは、具体的なペアリングモードの決定はオペレーティングシステムに委ねられます。

macOSでは、デバイスのペアリングを解除することはできません。Unpairedが要求された場合、デバイスはペアリングされた状態のままですが、pairingFinished()が直ちに発火します。以前にペアリングが解除されたデバイスに対して、再度ペアリングを要求することは可能です。また、AuthorizedPaired はPaired と同じ動作をします。

注意:ペアリングの確立には数分かかる場合があり、ユーザーによる承認が必要になることがあります。

void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode)

このローカルBluetoothデバイスのホストモードをmode に設定します。

デバイスの電源のオン/オフなどの一部の遷移には、時間がかかる場合があります。そのため、hostModeStateChanged() シグナルが前のリクエストを完了してからでないと、後続の呼び出しを行わないでください。これを無視した場合、一連の呼び出しの結果は未定義となります。

注: サポートされているプラットフォームによってセキュリティポリシーが異なるため 、このメソッドの動作はプラットフォームごとに異なる場合があります。たとえば、Bluetoothのオン/オフ切り替え前にシステムがユーザーに確認を求める場合や、すべてのホストモードがサポートされていない場合があります。 macOS では、hostMode() をプログラムで変更することはできません。ユーザーは「システム環境設定」でのみ Bluetooth のオン/オフを切り替えることができます。Windows では、ユーザーの確認が必要になる可能性があるため、このメソッドは UI スレッドから呼び出す必要があります。詳細については、各プラットフォーム固有の Bluetooth ドキュメントを参照してください。

hostMode()も参照してください 。

© 2026 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.