UWPでBluetooth接続時のWindows10向けのPackage.appxmanifestの記述方法

タイトルの日本語がおかしい
どこ探しても情報が見当たらなかったのでメモ
rfcommで試しているけど他のもある程度同じやり方でいけるはず







Windows8向けの設定(一応)


この辺りは調べれば出てくるので問題ないかな
動作は未確認
以下をCapabilitiesタグへ挿入する
<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="vidpid:xxxx xxxx bluetooth">
    <m2:Function Type="serviceId:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
    <m2:Function Type="name:xxxxx"/>
  </m2:Device>
</m2:DeviceCapability>



Windows10向けの設定


Windows10で試そうとすると上記の設定ではビルドエラーになってしまう(m2がなくなっている?)
以下が完全に動作する記述
<Capabilities>
    <Capability Name="internetClient" />
    <!-- 以下を挿入 -->
    <DeviceCapability Name="bluetooth.rfcomm">
      <Device Id="any">
        <Function Type="name:serialPort"/>
      </Device>
    </DeviceCapability>
    <!-- 挿入ここまで -->
  </Capabilities>
簡単に解説すると
  • 通信プロトコルとしてrfcommを使用する
  • すべてのデバイスのアクセスを許可する
  • SPP(シリアルポートプロファイル)を利用する(サービス名、IDとのことだがいまいちよくわからない)
といった感じになるかと
調べきれなかったので断言はできないが、大きく間違っていることもないはず



参考


Windows10アプリ向けBluetoothの情報

https://msdn.microsoft.com/ja-jp/library/windows/apps/mt270288.aspx
https://blogs.msdn.microsoft.com/shozoa/2016/02/28/windows-10-bluetooth/

マニフェスト(Package.appxmanifest)についての詳細

https://msdn.microsoft.com/ja-jp/library/windows/apps/dn263090.aspx
https://msdn.microsoft.com/library/windows/apps/dn705793.aspx


その他情報


例外 system.runtimeinteropservices.comexception が発生する

「アクセス許可で禁じられた方法でソケットにアクセスしようとしました。」
再ペアリングしたら改善するかも


正直色々試したら出来たっていう状態で、公開されている情報だけで出来るとは思えないんですが......
実際の通信周りは後日公開予定

2016年6月5日日曜日