我正在開發Windows 10上的C#WinForms應用程序。我想執行藍牙環境掃描並獲取PC周圍的設備列表。我也想要每個設備的RSSI。藍牙掃描C#
我試過32feet庫,但無法訪問RSSI。
你有一個解決方案,或者我應該遷移到WPF/UWP?
我正在開發Windows 10上的C#WinForms應用程序。我想執行藍牙環境掃描並獲取PC周圍的設備列表。我也想要每個設備的RSSI。藍牙掃描C#
我試過32feet庫,但無法訪問RSSI。
你有一個解決方案,或者我應該遷移到WPF/UWP?
好的,我找到了一個解決方案here。
然後在你的項目,你必須添加此庫:
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd
或者你可以安裝「UwpDesktop」 NuGet包。
這適用於控制檯應用程序,Winforms,WPF和UWP。
下面是一個簡單的例子:
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);
}
}
}
僅鏈接答案可能會有問題(因爲鏈接可能會在以後中斷)。如果您總結了解決方案的內容,對社區會有所幫助。例如,也許你必須選擇一個不同的項目類型或平臺......或者使用特定的nuget軟件包......或者也許這個屬性並不是你所期望的......所有有用的信息都會傳給下一個這樣的人題 :) –
BluetoothDeviceInfo device_info = device_info.Rssi.ToString();
調用'ToString'的結果不能分配給'BluetoothDeviceInfo'類型的變量。我不認爲這個代碼會編譯。 –
看看這個: https://stackoverflow.com/questions/34807308/bluetooth-discovery-and-signal-strength-rssi – khmub
我假設你已經在對等設備信息的32feet文檔下看到[RSSI部分](https://github.com/inthehand/32feet/wiki/Peer-Device-Information#rssi)。在Windows桌面上,您要求的內容可能不可能。 –
@JeffBridgman謝謝,在Windows 7或Windows 7下,RSSI訪問是不可能的。但可以通過Windows 10(我使用的平臺)訪問它。 我已經嘗試過Windows 10上的32feet,並且RSSI似乎不起作用。我認爲問題是32f庫女巫不兼容。 –