locked
(UWP) Bluetooth SPP(Rfcomm)デバイスのインスタンスの列挙が行えない。 RRS feed

  • 質問

  • いつもお世話になっております。

    現在、以下の構成でアプリからモバイルプリンターへ印刷を行う処理を作成していますが、
    ペアリングを行った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

回答

  • こんにちは。

    Windows 10 IoT Embedded とはなんでしたっけ。
    Coreですか?Enterpriseですか?

    そして Windows 10 IoT のバージョンはいくつでしょうか。
    特に、Coreですとボードが何なのかも記載されると良いと思います。

    ボードごとにOSイメージが異なり、不具合内容なども異なります。

    • 回答としてマーク Jun1984 2018年2月21日 13:42
    2018年2月19日 21:37
    モデレータ
  • 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

すべての返信

  • こんにちは。

    Windows 10 IoT Embedded とはなんでしたっけ。
    Coreですか?Enterpriseですか?

    そして Windows 10 IoT のバージョンはいくつでしょうか。
    特に、Coreですとボードが何なのかも記載されると良いと思います。

    ボードごとにOSイメージが異なり、不具合内容なども異なります。

    • 回答としてマーク Jun1984 2018年2月21日 13:42
    2018年2月19日 21:37
    モデレータ
  • 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