2016-06-20 14 views
5

プログラムでBluetooth LEデバイスとペア設定できるWindows 10 UWPアプリケーションがあります。ペアリングが成功すると、デバイスへの接続も確立されます。Windows 10で接続が失われると、プログラムでBluetoothデバイスに接続する方法UWP

ある時点で、デバイスが切断されると、私はLEデバイスからGattCharacteristicsを読み取ることができません。私は、接続が存在するかどうかを確認することができますが、私は接続を再確立することができません。

DeviceInformation deviceInfo = await DeviceInformation.CreateFromIdAsync("deviceId", "additionalProperties", "DeviceInformationKind"); 

if(deviceInfo.ConnectionStatus != BluetoothConnectionStatus.Connected) { // re-establish the connection } 

ありがとうございます。

答えて

7

通報

は、Bluetooth LEデバイスがペアリング処理中に作成された結合情報を格納していません。ボンディング情報により、以前にペアになった2台のデバイスは、切断された場合に新しい接続を開始できます。

in-app pairing APIsを使用したWindows 10のソリューション

、あなたがプログラムでのBluetooth LEデバイスとペアリングするシステムを伝えることができます(それはあなたがすでにこれをやっているように聞こえます)。上記の接着問題を回避するには、にDevicePairingProtectionLevelを設定する必要があります。だからあなたのアプリ内ペアリングコードは次のようになります。NoneDevicePairingProtectionLevelを設定

var result = await someDevice.Pairing.PairAsync(DevicePairingProtectionLevel.None); 

接着する情報を無視して、一致するデバイスを探すようにシステムに指示します。

周辺ソリューション

あなたは、周辺のファームウェアへのアクセス権を持っている場合は別の方法として、あなたはボンディング情報を覚えておくように設定することができます。その後、Windows 10での現在のペアリングが機能するはずです。

+0

+1ありがとうございます。 DevicePairingProtectionLevelをNoneに設定すると、データへのアクセスに役立ちます。ある時点で私は気づいたが、接続は外されているようだった。私は一貫性をチェックするためにテストしています。残念ながら私は周辺機器のファームウェアにアクセスすることはできませんので、上記で説明したWindows 10のソリューションを進めます。ありがとう! –

+0

私のプログラムでも接続を再確立できません。それは最初のペアリング後に正常に動作しますが、後で再び接続しません。私はアプリ内ペアリングを使用していませんが、テストとして、Windows Universal Samples Scenario8_PairDevice.xaml.csコードを変更してDevicePairingProtectionLevel.Noneを使用しました。変更されたサンプルコードを使用してデバイスをペアにしました。私のプログラムに戻っても、後で接続を再確立することができませんでした。このDevicePairingProtectionLevel.Noneはグローバルに保存されているので、どのプログラムでも後で接続を再確立できますか? – JFar

+0

@JFar Windows 10 Creativeアップデートがこれをどのように変更するのかよく分かりませんが(私はそこにいくつかのBTアップデートがあると思いますが)、 'DevicePairingProtectionLevel.None'はグローバルだと思います。再接続しようとしている周辺機器が、接続可能な広告として表示されていない可能性があります。別のデバイスで表示できますか? – Carter

関連する問題