在Windows中收听并接受BLE Con​​nect请求

时间:2017-01-31 16:28:00

标签: c# windows bluetooth-lowenergy gatt

我一直在尝试使用低功耗蓝牙将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");
        }
    }
}

我期待您的回复,并希望您能帮我爬出这个车辙,非常感谢和谢谢!

0 个答案:

没有答案