c# – Windows 10 API中的蓝牙低能耗广告数据限制[已关闭]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – Windows 10 API中的蓝牙低能耗广告数据限制[已关闭],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1251字,纯文字阅读大概需要2分钟。
内容图文
![c# – Windows 10 API中的蓝牙低能耗广告数据限制[已关闭]](/upload/InfoBanner/zyjiaocheng/965/b0ec7011985a4fdea07724990f18ac56.jpg)
我遇到了来自Windows 10蓝牙低功耗(BLE)API的BluetoothLEAdvertisementDataSection.BluetoothLEAdvertisementDataSection class问题.
如果我使用以下代码检查IBuffer成员数据的长度:
var myDataSection = new BluetoothLEAdvertisementDataSection();
Debug.WriteLine($"Data Capacity: {myDataSection.Data.Capacity}"); //Looks like SO needs to update for C# 6.0
我得到了预期的输出:
Data Capacity: 29
有关BLE数据包的更多信息,我建议访问this great blog post.
现在让我们说我已经声明了一个名为myPayload的byte [],它长29个字节.以下代码抛出异常:
DataWriter writer = new DataWriter();
writer.WriteBytes(myPayload);
myDataSection.Data = writer.DetachBuffer(); //throws ArgumentException
ArgumentException非常有用地表明了这一点
“Value does not fall within the expected range.”
实际上,20个字节的myPayload的任何大小都会导致相同的错误.但是,如果我把它设为19个字节,我就没有错误.
是的,当this answer没有帮助时,我感到非常沮丧.
解决方法:
这真的很难过……但实际上我错误地计算了我添加的字节数. 29个字节确实有效. 30没有.这不是API问题.
static readonly byte[] myPayload =
{0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF, //8 bytes
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF, //8 bytes
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF, //8 bytes
0x00,0x00,0x00,0x00,0x00}; //5 bytes Total:29 bytes
……会工作得很好.
内容总结
以上是互联网集市为您收集整理的c# – Windows 10 API中的蓝牙低能耗广告数据限制[已关闭]全部内容,希望文章能够帮你解决c# – Windows 10 API中的蓝牙低能耗广告数据限制[已关闭]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。