次の方法で共有


Bluetooth 近接通信プロファイル

近接プロファイルは、デバイスが近接性を検出できるようにするための 2 つの役割を定義します。

次の 2 つのロールが呼び出されます。

  • 近接レポーター
  • 近接モニター

Diagram illustrating the relationship between the Proximity Reporter and Proximity Monitor roles in Bluetooth Proximity Profile.

近接レポーター

近接レポーターは、汎用 ATTribute (GATT) サーバーである必要があります。

近接レポーターは、次の GATT サービスをサポートしています。

  • リンク損失サービス (必須)
  • イミディエイト アラート サービス (省略可能)
  • Tx電力サービス(オプション)

近接モニター

近接モニターは GATT クライアントです。 近接レポーターへの接続を作成してメインし、接続の無線信号強度情報 (または RSSI) を監視して、信号のパス損失を計算する必要があります。 オプションの Tx Power Service が近接レポーターで使用できる場合は、この追加情報を使用して、Tx 電力水準器から RSSI を減算して RSSI 値を正規化することもできます。

Windows での GATT のサポート

GATT デバイスが Windows とペアリングされている場合、デバイスはシステムの一部になります。 Windowsは以下を提供する デバイスオブジェクト デバイスとデバイスによってレポートされるプライマリ サービスの両方を表します。

その Windows.Devices.Bluetooth.GenericAttributeProfile 名前空間 アプリ developers が Windows で使用できる汎用属性プロファイル API について説明します。

デバイス アプリを開発する際の最初の手順の 1 つは、ユーザーが関心を持つシナリオを実現するためにアプリに必要な Bluetooth サービスを特定することです。 近接プロファイルの場合、デバイス アプリはリンク損失サービスと、必要に応じてイミディエイト アラート サービスと Tx Power Service を使用する必要があります。

デバイス アプリは、で利用可能な API を使用する必要があります Windows.Devices.リスト名前空間 Windows とペアになっているデバイスがリンク損失サービスを実装しているかどうかを確認します。 特に、使用 DeviceInformation.FindAllAsync メソッド。

その DeviceInformation.FindAllAsync メソッド かかります AQS(詳細なクエリ構文) リンク損失サービスを含むデバイスのみをフィルタリングするために、デバイス セレクターをパラメータとして使用します。 デバイスアプリ開発者 こともできます使用 GetDeviceSelectorFromUuid または GetDeviceSelectorFromShortId のメソッド GattDeviceService クラスなので、AQS フィルターを手動で構築する必要はありません。

リンク ロス サービスは、Bluetooth SIG によって定義された Bluetooth GATT サービスです,そしてそれ自体として ショートID の代わりに使用することができます 完全に修飾された UUID.

その ショートID 近接プロファイル サービスに割り当てられるサービス ID は次のとおりです。

サービス名 ショートID
リンク損失 0x1803
イミディエイト アラート 0x1802
Tx パワー 0x1804

Bluetooth SIGは、最新のサービスリストを維持しています 割り当てられた番号のドキュメント.

どのサービスを利用するか決めたら、 コール GattDeviceService.FromIdAsync サービスのインスタンスを取得するには。

有効な GattDeviceService オブジェクトを取得したら、それを使ってデバイスと通信します を使って Windows.Devices.Bluetooth.GenericAttributeProfile API.

これらの API を使用すると、特定のサービスとそのオブジェクト (インクルードされたサービス、特性、記述子など) にアクセスしたり、読み取りおよび書き込み機能を使用したりできます。

その Bluetooth 一般属性プロファイル - 心拍数サービス サンプルでは、これらの手法のいくつかを示します。

効率的な電力の使用

Windows での Bluetooth 低エネルギーのサポートは、効率的な電力の使用に重点を置いています。 この焦点には、ローカルの Bluetooth 無線アダプターの従量課金電力を削減し、CPU を使用してできるだけ少なくすることが含まれます。

したがって、Bluetooth LE 接続を確立するには、アプリでハンドラーを登録する必要がありますにとって GattCharacteristic.ValueChanged イベント。 あるいは、アプリは呼び出す必要がありますどれかの GattCharacteristic.ReadValueAsync, GattCharacteristic.WriteValueAsync or GattCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync BluetoothCacheMode.Cached オプションを指定しないメソッド。

Note

電力従量課金を最小限に抑えるために、Windows はローカル Bluetooth 無線コントローラーをポーリングしてリンクの RSSI 値をアクティブに監視しません。

電力に関する考慮事項が説明されていますで 近接プロファイルの実装詳細.