C# 蓝牙扫描#

C# 蓝牙扫描#,c#,winforms,bluetooth,windows-10,rssi,C#,Winforms,Bluetooth,Windows 10,Rssi,我正在Windows 10上开发一个C#WinForms应用程序。我想执行蓝牙环境扫描,并获得电脑上所有设备的列表。我还想获得每个设备的RSSI 我尝试了32英尺的图书馆,但我无法访问RSSI 您有解决方案吗?或者我应该迁移到WPF/UWP吗?好的,我找到了解决方案 您首先必须安装Windows10开发工具包 然后,您必须在项目中添加此库: C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd 或者您可以安装“Uw

我正在Windows 10上开发一个C#WinForms应用程序。我想执行蓝牙环境扫描,并获得电脑上所有设备的列表。我还想获得每个设备的RSSI

我尝试了32英尺的图书馆,但我无法访问RSSI


您有解决方案吗?或者我应该迁移到WPF/UWP吗?

好的,我找到了解决方案

  • 您首先必须安装Windows10开发工具包
  • 然后,您必须在项目中添加此库:

    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);
            }
        }
    }
    

  • 好的,我找到了解决办法

  • 您首先必须安装Windows10开发工具包
  • 然后,您必须在项目中添加此库:

    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);
            }
        }
    }
    

  • 看看这个:我想你已经看到了32英尺下的对等设备信息文档。您的要求在Windows桌面上可能不可能实现。@JeffBridgman谢谢,在Windows 7或更低版本下,RSSI访问是不可能的。但是可以通过Windows10(我正在使用的平台)访问它。我在Windows10上试过32英尺,RSSI似乎不起作用。我认为问题在于32f lib witch不兼容。请提供更多关于“似乎不起作用”的详细信息。您找不到获取信息的函数/属性吗?返回的信息是否不是您所期望的?你有错误吗?您当前用于访问RSSI的代码对于添加对原始问题的编辑也很有用。@khmub此主题适用于Windows 7,对于Bluetooth,7和10之间存在许多差异。请注意:我假设您已经看到了32英尺文档下的对等设备信息。您的要求在Windows桌面上可能不可能实现。@JeffBridgman谢谢,在Windows 7或更低版本下,RSSI访问是不可能的。但是可以通过Windows10(我正在使用的平台)访问它。我在Windows10上试过32英尺,RSSI似乎不起作用。我认为问题在于32f lib witch不兼容。请提供更多关于“似乎不起作用”的详细信息。您找不到获取信息的函数/属性吗?返回的信息是否不是您所期望的?你有错误吗?您当前用于访问RSSI的代码也有助于添加对原始问题的编辑。@khmub此主题适用于Windows 7,对于bluetoothLink,7和10之间存在许多差异。只有答案可能有问题(因为链接可能稍后会断开)。如果你能总结出解决方案是什么,对社区会有帮助。例如,可能您必须选择不同的项目类型或平台。。。或者使用特定的nuget包。。。或者这房子的名字和你想象的不一样。。。。将所有有用信息发送给下一个有此问题的人:)只有链接的答案可能会有问题(因为链接可能会在以后断开)。如果你能总结出解决方案是什么,对社区会有帮助。例如,可能您必须选择不同的项目类型或平台。。。或者使用特定的nuget包。。。或者这房子的名字和你想象的不一样。。。。将所有有用信息发送给下一个有此问题的人:)