我一直在尝试使用低功耗蓝牙将iOS设备连接到Windows,我发现windows BLE API非常不清楚。
Windows充当外围设备,iOS设备充当中心
我认为我在iOS设备上的Swift代码很好,它适用于BLE设备(就像我拥有的气候设备),我在iOS上做的是: - 启动BLE广告扫描 - 收到广告后,如果我正在寻找ManufacturerData,我会尝试连接到外围设备。
在窗户方面,我: - 准备我的广告包 - 发布它
目前,我收到了iOS上的软件包,我启动了连接尝试......什么都没有! (didFailToConnect甚至没有被召唤)
我觉得我在Windows端丢失了一些东西,我想在那里有某种连接请求监听器?我需要说"是的,我接受这种联系!"或者"不,我没有!"因为我的代码中不存在,连接请求永远不会被回答?我在球场吗?
在google搜索,stackoverflowing和WindowsAPIing上,我无法找到如何执行此操作,如果我确实需要这样做,或者我尝试的内容甚至可以在这种方式!
不言而喻,任何帮助都会受到高度赞赏。这是我在Windows端的C#代码,出于测试目的,它是一个简单的控制台应用程序,然后停留在一个丑陋的循环中,直到我想要它才终止:
namespace BluetoothClient
{
class Program
{
static void Main(string[] args)
{
BluetoothLEAdvertisementPublisher publisher = new BluetoothLEAdvertisementPublisher();
var manufacturerData = new BluetoothLEManufacturerData();
manufacturerData.CompanyId = 0xFFFA;
var writer = new DataWriter();
writer.WriteString("Testme");
manufacturerData.Data = writer.DetachBuffer();
publisher.Advertisement.ManufacturerData.Add(manufacturerData);
publisher.Start();
publisher.StatusChanged += Publisher_StatusChanged;
Console.Write("Started\n");
while (true) { }
}
private static void Publisher_StatusChanged(BluetoothLEAdvertisementPublisher sender, BluetoothLEAdvertisementPublisherStatusChangedEventArgs args)
{
Console.Write("Status: "+args.Status+"\n");
}
}
}
我期待您的回复,并希望您能帮我爬出这个车辙,非常感谢和谢谢!