2016-09-13 20 views
0

これは、BLEデバイスを取得するためのUWPコードです。なぜ私はbleDevice ==いくつかのデバイスのnullを取得する?私はそれを説明する文書を見つけられませんでした。BluetoothLEDevice.FromIdAsync returned null

var devices = await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector()); 
    foreach (DeviceInformation di in devices) 
    { 
     Debug.WriteLine(di.Name); 
     BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(di.Id); 

     if (bleDevice == null) { 
      Debug.WriteLine("--- NULL ----"); 
      continue; 
     } 
     Debug.WriteLine(bleDevice.Name); 
    } 

私はbleDeviceを得ることに気づいた!=、WindowsのデバイスマネージャでSTATUS_DEVICE_POWER_FAILUREと感嘆符を持っているBLEデバイスの場合はnull。

デバイスマネージャで感嘆符が付いていないBLEデバイスの場合、bleDevice == nullが返されます。

答えて

-1

appxmanifestファイルにBluetooth機能を追加する必要があります。

2

私は同じ問題を抱えています。前のanswer from Chi Leeは実際には良いですが、それを行う方法について詳しくは不十分です(非専門家のために;-))。ここで

詳細なプロセス(あなたがマイクロソフトのVisual Studioの下でのAC#プロジェクトを持っていると仮定します):

  1. ダブルプロジェクトの下にプロパティフィールドをクリックします。これは新しいタブに開かれた中 select properties
  2. を開きます。タブ、左にアプリケーションを選択しパッケージマニフェスト...ボタン をクリックしてください
  3. package.appxmanifest」という名前の新しいタブが開きます。選択し、その中に、機能タブ
  4. は機能の下 select BT capability
  5. 保存Bluetoothのフィールドを確認し、プロジェクトを再コンパイルします。

BluetoothLEDevice.FromIdAsync(di.Idが)これ以上のリターンヌル、はすでにあなたのプログラムにするか、手動でWindowsののいずれか(デバイスをペアリングしていることを提供します。

+0

、私は非常にあなたに感謝しなければなりませんこの単純な解決策のために私はなぜ私がnullになっていたのかを理解しようとしている私の髪を引っ張っていた。 – Kingpin