C# 如何使用Windows 10 BLE API公布Eddystone URL框架
URL框架规范: 我在宣传Eddystone URL框架时遇到问题。我正在使用以下代码,但是Eddystone信标扫描仪无法识别它C# 如何使用Windows 10 BLE API公布Eddystone URL框架,c#,bluetooth,windows-10,eddystone,C#,Bluetooth,Windows 10,Eddystone,URL框架规范: 我在宣传Eddystone URL框架时遇到问题。我正在使用以下代码,但是Eddystone信标扫描仪无法识别它 byte[] data; string url = "http://test.com"; var urlSchemeByte = EddystoneUrlFrame.EncodeUrlScheme(url); var header = new byte[] { 0xAA, 0xFE, 0x10 }; using (var memoryStream = new Me
byte[] data;
string url = "http://test.com";
var urlSchemeByte = EddystoneUrlFrame.EncodeUrlScheme(url);
var header = new byte[] { 0xAA, 0xFE, 0x10 };
using (var memoryStream = new MemoryStream())
{
memoryStream.Write(header, 0, header.Length);
// ranging data
memoryStream.WriteByte(220);
memoryStream.WriteByte((byte)urlSchemeByte);
EddystoneUrlFrame.EncodeUrlToStream(url,EddystoneUrlFrame.UrlSchemeDictionary[(byte)urlSchemeByte].Length,memoryStream);
data = memoryStream.ToArray();
}
var writer = new DataWriter();
writer.WriteBytes(data);
var advertisementData = new BluetoothLEAdvertisementDataSection();
advertisementData.Data = writer.DetachBuffer();
publisher.Advertisement.DataSections.Add(advertisementData);
我做错了什么?尝试在标题前添加以下内容:
0x0D, 0x16
0x03, 0x03, 0xAA, 0xFE
var header = new byte[] { 0x03, 0x03, 0xAA, 0xFE, 0x0D, 0x16, 0xAA, 0xFE, 0x10 };
我对Windows API并没有经验,所以用这种方式指定这些字节可能是错误的。但不知何故,它们需要在传输中进行适当的检测。Eddystone URL按设计仅支持HTTPS http://test。com必须是https://test。com 请尝试一个url缩短器并再次测试。https://goo。德国劳埃德船级社/