有没有办法使用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:
BluetoothLEAdvertisementWatcher watcher = new BluetoothLEAdvertisementWatcher { ScanningMode = BluetoothLEScanningMode.Active }; watcher.Received += WatcherOnReceived;
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层,并直接与加密狗通信,而不是使用默认的蓝牙堆栈。