Windows 10中的信标

有没有办法使用ibeacons与Windows 10开发? 由于ibeacons以前版本的Windows开发似乎几乎不可能,我们现在是否有机会支持这项技术?

有没有人开始开发这样的东西?

是的,Windows 10中的Windows应用程序通过Windows.Devices.Bluetooth.Advertisement命名空间支持信标

在Windows 10中查看Build talk Building Compelling Bluetooth Apps以及Bluetooth Advertisement Watcher和Publisher示例以获取更多信息。

以下是您如何使用Rob Caplan答复中提到的基于新Windows 10 API的Apple iBeacons:

  1. 开始观看信标:

BluetoothLEAdvertisementWatcher watcher = new BluetoothLEAdvertisementWatcher { ScanningMode = BluetoothLEScanningMode.Active }; watcher.Received += WatcherOnReceived; 

  1. 处理信标数据 – 请注意,根据您的情况,您可能需要通过存储信标来区分信标,并比较蓝牙地址

 private void WatcherOnReceived(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs btAdv) { // Optional: distinguish beacons based on the Bluetooth address (btAdv.BluetoothAddress) // Check if it's a beacon by Apple if (btAdv.Advertisement.ManufacturerData.Any()) { foreach (var manufacturerData in btAdv.Advertisement.ManufacturerData) { // 0x4C is the ID assigned to Apple by the Bluetooth SIG if (manufacturerData.CompanyId == 0x4C) { // Parse the beacon data according to the Apple iBeacon specification // Access it through: var manufacturerDataArry = manufacturerData.Data.ToArray(); } } } } 

这也是我在开放源代码Universal Beacon Library中实现它的原因,它带有完整的示例代码和一个应用程序来试用它: https : //github.com/andijakl/universal-beacon

微软此前曾表示,它将支持Windows 10中的蓝牙LE设备的应用程序控制扫描。这是Windows 8.x中移动设备和台式机所缺少的基本功能。 请参阅这里获取更多信息: https : //stackoverflow.com/a/26234432/1461050

到目前为止,Windows 10发布的预览API还没有公开这个功能。 如果暴露在外,这些API应该可以建立一个库来检测蓝牙LE信标。

编辑:此功能现在在新的BluetoothLeAdvertisementWatcher类中可用。 为了实现这一功能, 我们已经开始开发一个开源的Windows Beacon库 ,它将最终被设计用于Windows 10.这项工作还处于初级阶段。 目前,只能在Windows 8.x设备上使用附加的蓝牙扫描软件狗,它们可以将扫描结果传递给库进行分析。

如果您有兴趣帮助完成这项工作,请通过上面链接的GitHub项目发送一个笔记。

对于Windows 10之前的版本,您可以使用托管的C#库WinBeacon 。 该库使用简单的HCI层,并直接与加密狗通信,而不是使用默认的蓝牙堆栈。