2017-10-13 346 views
-1

我正在開發Windows 10上的C#WinForms應用程序。我想執行藍牙環境掃描並獲取PC周圍的設備列表。我也想要每個設備的RSSI。藍牙掃描C#

我試過32feet庫,但無法訪問RSSI。

你有一個解決方案,或者我應該遷移到WPF/UWP?

+0

看看這個: https://stackoverflow.com/questions/34807308/bluetooth-discovery-and-signal-strength-rssi – khmub

+0

我假設你已經在對等設備信息的32feet文檔下看到[RSSI部分](https://github.com/inthehand/32feet/wiki/Peer-Device-Information#rssi)。在Windows桌面上,您要求的內容可能不可能。 –

+1

@JeffBridgman謝謝,在Windows 7或Windows 7下,RSSI訪問是不可能的。但可以通過Windows 10(我使用的平臺)訪問它。 我已經嘗試過Windows 10上的32feet,並且RSSI似乎不起作用。我認爲問題是32f庫女巫不兼容。 –

回答

2

好的,我找到了一個解決方案here

  1. 您首先必須安裝Windows10開發工具包。
  2. 然後在你的項目,你必須添加此庫:

    C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd 
    

    或者你可以安裝「UwpDesktop」 NuGet包。

  3. 這適用於控制檯應用程序,Winforms,WPF和UWP。

  4. 下面是一個簡單的例子:

    using Windows.Devices.Bluetooth.Advertisement; 
    
    namespace BeaconExample 
    { 
        class Program 
        { 
         static void Main(string[] args) 
         { 
          var watcher = new BluetoothLEAdvertisementWatcher(); 
          watcher.Received += Watcher_Received; 
          watcher.Start(); 
         } 
    
         private static void Watcher_Received(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args) 
         { 
          Console.WriteLine(args.BluetoothAddress.ToString("x") + ";" + args.RawSignalStrengthInDBm); 
         } 
        } 
    } 
    
+0

僅鏈接答案可能會有問題(因爲鏈接可能會在以後中斷)。如果您總結了解決方案的內容,對社區會有所幫助。例如,也許你必須選擇一個不同的項目類型或平臺......或者使用特定的nuget軟件包......或者也許這個屬性並不是你所期望的......所有有用的信息都會傳給下一個這樣的人題 :) –

0

BluetoothDeviceInfo device_info = device_info.Rssi.ToString();

+0

調用'ToString'的結果不能分配給'BluetoothDeviceInfo'類型的變量。我不認爲這個代碼會編譯。 –