MacでのBluetoothホストコントロールデバイスの優先順位の変更
毎回ググるのでメモ。
OSX は USBのドングルとかBluetoothホストコントローラとかをつけたときの挙動を、ファームウェアの NVRAM ってところに bluetoothHostControllerSwitchBehavior というキーで値を設定してあげることによって以下の3種類のうちから決めることができる。
never: 外付けのホストコントローラにスイッチせず、つねにビルドインコントローラを使うalways: ビルドインコントローラからdetachして外付けのホストコントローラにスイッチするdefault: 外付けホストコントローラがApple以外のときはビルドインからdetachして外付けデバイスを使う
デフォルトはもちろん default。
で、 BT4LE に対応したドングルを持っていれば、BT4積んでない昔の MacBook なんかでも CoreBluetooth つかったり開発したりできる。
さらに、あえてここで never を設定して外付けのホストコントローラを使わない設定にすると、 余っている外付けホストコントローラを iOS Simulator から利用することができる。
この設定を変えるには nvram ってコマンドを使う:
$ sudo nvram bluetoothHostControllerSwitchBehavior="never"
とかでOK。
詳しくは
Technical Note TN2295: Testing Core Bluetooth Applications in the iOS Simulator
参照。