雑記帳

整理しない情報集

更新情報

イヤホンのみBluetooth接続を許可する方法

公開日:

カテゴリ: Windows

WindowsにおいてイヤホンのみBluetooth接続を許可する方法を探してみました。

この記事では、接続したデバイスの設定で使用する機能を選択するのではなく、Windows側のポリシーにてPC全体で機能の使用可否を設定する方法を扱います。

TL;DR

  • 必須: 0000110B-0000-1000-8000-00805F9B34FB
  • 推奨(多くのアプリで必要): 0000110E-0000-1000-8000-00805F9B34FB

一括指定するコマンドです。設定反映にはコマンド実行後にPCの再起動が必要です。

rem 必須
reg add HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth /v ServicesAllowedList_ProviderSet /t REG_DWORD /d 1 /f
reg add HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Connectivity /v AllowBluetooth /t REG_DWORD /d 2 /f
reg add HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Connectivity /v AllowBluetooth_ProviderSet /t REG_DWORD /d 1 /f

rem 一般的な最小限
reg add HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth /v ServicesAllowedList /d "{0000110B-0000-1000-8000-00805F9B34FB};{0000110E-0000-1000-8000-00805F9B34FB};" /f

rem 再生アプリケーションでKernel Streamingが使える場合の最小限
reg add HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth /v ServicesAllowedList /d "{0000110B-0000-1000-8000-00805F9B34FB};" /f

Bluetoothサービス・プロファイルの制御

WindowsにおいてBluetoothのサービスやプロファイル単位で許可する方法は以下のリンクの通りです。

要約すると以下のコマンドで設定可能です。

REG ADD HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth /v ServicesAllowedList /d "許可するUUID" /f
REG ADD HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth /v ServicesAllowedList_ProviderSet /t REG_DWORD /d 1 /f
REG ADD HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Connectivity /v AllowBluetooth /t REG_DWORD /d 2 /f
REG ADD HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Connectivity /v AllowBluetooth_ProviderSet /t REG_DWORD /d 1 /f

BluetoothではサービスやプロファイルごとにUUIDが定義されており、WindowsではそのUUIDを用いてポリシー制御ができます。

Windowsで設定できるポリシーはホワイトリスト制となっており、上記コマンドで登録するレジストリServicesAllowedListの値に指定したUUIDのサービスやプロファイルのみが許可されます。複数のUUIDを指定する場合はセミコロンで区切ります。

指定するUUID

で、ServicesAllowedListに何のUUIDを指定するかについてですが、基本的にBluetooth公式の仕様書から該当するUUIDを確認することになります。

仕様書を見て必要そうなUUIDを片っ端から指定すれば使えますが、せっかくWindowsはホワイトリスト制で制御されているため、今回は最小限の指定で済ませることにします。

ちなみにBluetoothのサービスUUIDは0000XXXX-0000-1000-8000-00805F9B34FBの形式となっており、5~8桁目以外はすべて固定となっています。つまり5~8桁目に指定する値でサービスを識別できます。

A2DP (Advanced Audio Distribution Profile)

  • 110B (0000110B-0000-1000-8000-00805F9B34FB)

Bluetoothで再生機器へデータを転送する通信規格のプロファイルUUIDです。音楽再生を目的としたプロファイルで、今では一般的ですが昔から存在するSBCよりも高音質です。音声再生にはほぼ必須となります。

Windowsでは再生用のサウンドデバイスとして認識されます。ただしこのプロファイル単独では、Windowsのサウンド設定などで扱える入出力デバイスとしては認識されないため、一般的なアプリケーションでは使用できません。デバイスマネージャーでは「サウンド、ビデオ、およびゲームコントローラー」の項目のみに表示されます。

Kernel Streamingで出力することができるソフトウェア(VoiceMeeterなど)で使用するのであれば、このプロファイル単独の許可でも使用できます。

ちなみにA2DPにはもう1つ110Aというプロファイルがありますが、こちらは音声を受け取る側のプロファイルです。

AVRCP (Audio/Video Remote Control Profile)

  • 110E (0000110E-0000-1000-8000-00805F9B34FB)

再生機器に対して操作を行うための通信規格のプロファイルUUIDです。

WindowsではこのUUIDを指定することで入出力デバイスとして認識され、各種アプリケーションで再生デバイスとして指定できるようになります。デバイスマネージャーでは「オーディオの入力および出力」の項目にも表示されるようになります。

こちらももう1つ110Fというプロファイルがありますが、こちらは再生機器側から送り元の機器を操作(例えば再生/一時停止/前へ/次へなど)をするためのプロファイルのようです。

結論

ということで、Bluetoothイヤホンを使うのに必要な最小限のServicesAllowedListの指定は

  • 必須: 0000110B-0000-1000-8000-00805F9B34FB
  • 推奨(多くのアプリで必要): 0000110E-0000-1000-8000-00805F9B34FB

となります。

カテゴリ: Windows