我想开发一个应用程序为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好办法吗?
进入设置 - >更改电脑设置 - > - > PC和设备 - >蓝牙。
确保你的设备是可发现,然后再建立连接。
再试一次,当您完成后,如果仍然不行,请尝试使用下面的代码:
var devices = await DeviceInformation.FindAllAsync(
GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.GenericAccess));
devices.Count应至少返回1。
在我的情况有3两件事是错误的。
如果你打算使用BLE在Windows 8.1中,首先要确保你有
Bluetooth LE Enumerator
在设备管理器中,如果没有去PC /笔记本电脑制造商,并重新安装驱动程序,直到你在设备管理器中找到BLE枚举!
其次,正如彼得Duniho说,配对设备,你做任何事情之前手动。 Windows没有像扫描功能,让您尝试连接之前,先配对。
而在去年,引用亚历时,Windows BLE就像是“狂野西部”。 有好几次,当我试图配对我的设备与Windows,我得到的消息“Windows无法配对您的设备,请确保它仍然发现”。 为了省略这一步提高我的设备上的每个制造商timouts(我认为,当Windows尝试配对我的设备后,响在想,什么都没有发生,因为过长的延迟,并进入睡眠模式或拒绝连接),所以你必须要有耐心。 首先,设置每个超时MAX值和关闭睡眠模式和省电模式。
我也可以证实,下面的代码工作正常:
var devices = await DeviceInformation.FindAllAsync(
GattDeviceService.GetDeviceSelectorFromUuid(new Guid("A9DA45B4-34F8-C660-591D-F6918B5B988C")), new string[] { "System.Devices.ContainerId" });