DeviceWatcherを使用して、UWPアプリケーションのペアのBluetoothデバイスにDeviceInformationを取得しています。 DeviceWatcher_Addedイベントハンドラは、私は、デバイスが、私はその名前をチェックして、それがRfcommServiceId.SerialPort.Uuidサービスを提供することに興味が1であるかどうかを確認するに呼び出されたとき、私はこのUWPで既知のBluetoothデバイスのCOMポート名を取得する
var requestedProperties = new string[] { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected" };
var deviceWatcher = DeviceInformation.CreateWatcher("(System.Devices.Aep.ProtocolId:=\"{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}\")", requestedProperties, DeviceInformationKind.AssociationEndpoint); // ClassGuid = {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} includes all Bluetooth devices
deviceWatcher.Added += DeviceWatcher_Added;
deviceWatcher.Updated += DeviceWatcher_Updated;
deviceWatcher.Start();
ようDeviceWatcherを設定します。
ブルートゥースデバイス用のDeviceInformationを取得したら、私はどのようにCOMポートを取得するのですか?私はそれが "標準的なSerial over Bluetooth link(COM8)"としてリストされているデバイスマネージャーで見ることができますが、UWPでプログラム的に "COM8"を取得する方法はわかりません。
私はその後、SerialDevice.PortName(C.F. this答えを)得ることができることによって、SerialDeviceにデバイス情報を作ってみたけどSerialDevice.FromIdAsync(deviceInfo.Id)
に私の呼び出しはのSystem.Exceptionで失敗:データが無効です。 another questionで
(NB thisとthisのようないくつかの食欲をそそるの答えは、Windows管理インストゥルメンWMI機能を使用しますが、これらはUWPでは使用できません。)
?あなたは完全なコードを表示することができますこの例外: 'System.Exception:データは無効です'? –
完全なコードはここにあります(https://github.com/dumbledad/BluetoothCOMGleaner) – dumbledad
あなたはすでに 'deviceInfo.Name'を知っていますので、あなたはこれから' Id'を得ることができるのだろうか? (deviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector())))。シングル(di => di.Name == deviceInfo.Name).Id' –