Windows 10 Bluetooth Ble (저에너지) API의 BluetoothLEAdvertisementDataSection.BluetoothLEAdvertisementDataSection class에 문제가 있습니다.Bluetooth Windows 10 API의 저에너지 광고 데이터 제한
이 코드를 사용하여 IBuffer
회원 Data
의 길이를 확인하는 경우 : 자세한 내용은 29
:
데이터 용량 :
내가 예상 출력을 얻을를 BLE 패킷에 대한 정보를 보려면 this great blog post을 방문하는 것이 좋습니다.var myDataSection = new BluetoothLEAdvertisementDataSection(); Debug.WriteLine($"Data Capacity: {myDataSection.Data.Capacity}"); //Looks like SO needs to update for C# 6.0
이제
이myPayload
이라는 길이가 293 바이트 인byte[]
을 선언했다고 가정 해 보겠습니다. 다음 코드는 예외가 발생합니다 ". 값이 예상 범위를 벗어 않는다"DataWriter writer = new DataWriter(); writer.WriteBytes(myPayload); myDataSection.Data = writer.DetachBuffer(); //throws ArgumentException
ArgumentException
매우 유용하게이 제안을 사실
같은 오류
myPayload
바이트 20+ 결과 모든 사이즈. 그러나 내가 바이트를으로 길게 만들면 오류가 발생하지 않습니다.예, 매우 화가났습니다. this answer이 도움이되지 않았습니다.
비슷한 상황에서 앞으로'static readonly byte [29] myPayload = ... '에서 배열 길이를 지정하면 도움이 될 것입니다. –
@Daniel @Daniel 아이디어가 마음에 들지만 신택스가 약간 필요합니다 수정 :'static readonly byte [] myPayload = 새로운 바이트 [29] {/ * 29 바이트의 데이터 * /}' – ZX9
구문을 알지 못했지만 테스트하지는 않았지만 아이디어를 보았습니다. 다른 옵션을 보려면 [가능한 모든 C# 배열 초기화 구문] (http://stackoverflow.com/questions/5678216/all-possible-c-sharp-array-initialization-syntaxes)을 참조하십시오. –