蓝牙低功耗连接

时间:2014-11-26 15:23:37

标签: c# bluetooth windows-8.1 bluetooth-lowenergy

我正在尝试为Win 8.1 PC开发一个应用程序来与我的BLE设备进行通信。我在Win 8中看到没有类似BLE的扫描功能,所以我从MS中读了一些例子并尝试使用UUID简单连接到我的设备:“A9DA45B4-34F8-C660-591D-F6918B5B988C”

所以我根据ms示例编写了一些代码:

 var devices = await DeviceInformation.FindAllAsync(
            GattDeviceService.GetDeviceSelectorFromUuid(new Guid("A9DA45B4-34F8-C660-591D-F6918B5B988C")), new string[] { "System.Devices.ContainerId" });

 if (devices.Count > 0){
    //Do something
 }

但是这段代码总是返回我的空设备列表。此外,我仍然可以通过Android或iOS应用程序连接我的设备。

有人能告诉我这是否是连接BLE的好方法?

2 个答案:

答案 0 :(得分:4)

转到设置 - >更改电脑设置 - > - > PC和设备 - >蓝牙。

确保您的设备可被发现,然后建立连接。

完成后再试一次,如果仍然无效,请尝试使用以下代码:

var devices = await DeviceInformation.FindAllAsync(
        GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.GenericAccess));

devices.Count应至少返回1.

答案 1 :(得分:2)

就我而言,有三件事是错误的。

如果您打算在Windows 8.1上使用BLE,请首先确保您拥有

Bluetooth LE Enumerator 

在您的设备管理器中,如果没有去PC /笔记本电脑制造商并重新安装驱动程序,直到您在设备管理器中找到BLE枚举器!

其次,正如Peter Duniho所说,在你做任何其他事情之前,先手动配对你的设备。 Windows没有像扫描功能那样的东西,所以在你尝试连接之前,首先配对它。

最后,引用Alexandru,Windows BLE就像" Wild West"。有几次,当我尝试将我的设备与Windows配对时,我收到了消息" Windows无法配对您的设备,请确保它仍然可被发现"。 为了省略这一步,我增加了我的设备上的每个制造商时间(我认为当Windows试图配对我的设备后,认为没有发生任何事情,因为太长的延迟,它进入睡眠模式或拒绝连接)所以你必须耐心。首先,将每个超时设置为MAX值,然后关闭睡眠模式和节能模式。

此外,我可以确认以下代码正常工作:

var devices = await DeviceInformation.FindAllAsync(
        GattDeviceService.GetDeviceSelectorFromUuid(new Guid("A9DA45B4-34F8-C660-591D-F6918B5B988C")), new string[] { "System.Devices.ContainerId" });