トップ回答者
(UWP) Bluetooth SPP(Rfcomm)デバイスのインスタンスの列挙が行えない。

質問
-
いつもお世話になっております。
現在、以下の構成でアプリからモバイルプリンターへ印刷を行う処理を作成していますが、
ペアリングを行ったBTモバイルプリンターの
インスタンスの列挙を行おうとしても何も列挙できません。
機器構成
タブレット ・・・ Windows10 Iot Embedded + UWPアプリ
プリンター ・・・ Bluetooth SPP(Rfcomm)に対応したモバイルプリンター
BTデバイスの列挙するコードは以下のURLを参考に
https://docs.microsoft.com/ja-jp/windows/uwp/devices-sensors/send-or-receive-files-with-rfcomm
以下のように行っています。
var services =
await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(
RfcommDeviceService.GetDeviceSelector(
RfcommServiceId.SerialPort));
Package.appxmanifestの<Capabilities>は以下の通りです。
<Capabilities>
<DeviceCapability Name="bluetooth.rfcomm">
<Device Id="any">
<Function Type="name:serialPort"/>
</Device>
</DeviceCapability>
</Capabilities>
別のWin10Home端末で、同じプリンターに対してペアリングを行い、
上記コードで列挙すれば正しく一覧されるのですが、
同じことをWin10Iotで行おうとすると列挙することができません。(例外も発生しません。)
気になっていることといえば、、
通知領域にBluetoothを有効/無効を切り替えるボタンがあると思いますが、
本来、BTを有効にし何かしらBTデバイスを接続すると
デバイス名がそこに表示されると思います。
しかしWin10Iotでは、接続時に一瞬プリンターの名前が表示されますが、
すぐに未接続になってしまいます。
今確認できる状況は以上になります。
お聞きしたいことは、以下の通りです。
・ 列挙できないのは、BTデバイスが接続してもすぐに切断されてしまうのが原因かと考えていますが、合っていますでしょうか?
もしそうなら、接続を維持する方法はありますでしょうか。
また接続がすぐに切れてしまうのはWin10Iotの仕様なのでしょうか?
・ 正しくインスタンスの列挙を行うためには、どのようにしたらよいでしょうか。(何を気を付けたらいいでしょうか。)
以上、長文で申し訳ございませんが、
本件の解決に向けて情報の提供をお願いできますでしょうか?
また、他に必要な情報がございましたらご連絡ください。
どうぞよろしくお願い致します。2018年2月19日 17:50
回答
-
Tak1wa様
お世話になります。
大変申し訳ございません。
Windows 10 IoT Enterpriseの誤りでした。
また、デバイスが列挙されない問題ですが、
デバイスインスタンスの列挙ができていなかったのではなく、
列挙はできていたが、DeviceInformationクラスのNameプロパティが空文字列であったため
リストボックスに追加しても見えていなかったようです。
重ね重ね申し訳ございませんでした。
ただ、同じプリンターに対し同じようにペアリングを行い
同じアプリでデバイスの列挙を行ったにも関わらず
Nameが異なる点については疑問が残りますが、
今回、質問させていただいた内容に関しては解決しましたので
この投稿は解決済みにさせていただきます。
>> そして Windows 10 IoT のバージョンはいくつでしょうか。
>> 特に、Coreですとボードが何なのかも記載されると良いと思います。
>> ボードごとにOSイメージが異なり、不具合内容なども異なります。
教えていただきありがとうございます。
今後Coreのほうで投稿させていただく際には注意するようにします。
今回は私の確認不足により大変失礼いたしました。- 回答としてマーク Jun1984 2018年2月21日 13:42
2018年2月21日 13:42
すべての返信
-
Tak1wa様
お世話になります。
大変申し訳ございません。
Windows 10 IoT Enterpriseの誤りでした。
また、デバイスが列挙されない問題ですが、
デバイスインスタンスの列挙ができていなかったのではなく、
列挙はできていたが、DeviceInformationクラスのNameプロパティが空文字列であったため
リストボックスに追加しても見えていなかったようです。
重ね重ね申し訳ございませんでした。
ただ、同じプリンターに対し同じようにペアリングを行い
同じアプリでデバイスの列挙を行ったにも関わらず
Nameが異なる点については疑問が残りますが、
今回、質問させていただいた内容に関しては解決しましたので
この投稿は解決済みにさせていただきます。
>> そして Windows 10 IoT のバージョンはいくつでしょうか。
>> 特に、Coreですとボードが何なのかも記載されると良いと思います。
>> ボードごとにOSイメージが異なり、不具合内容なども異なります。
教えていただきありがとうございます。
今後Coreのほうで投稿させていただく際には注意するようにします。
今回は私の確認不足により大変失礼いたしました。- 回答としてマーク Jun1984 2018年2月21日 13:42
2018年2月21日 13:42