Запрос MTU не работает в формах xamarin

Я реализую BLE в формах Xamarin, где я пытаюсь отправить данные размером более 20 байт. Так что я использовал

await _device.RequestMtuAsync(512);

Он работает на моем устройстве Redmi Note 8, но на некоторых устройствах, таких как Samsung и Honor, он не работает. Я просмотрел некоторые собственные решения для Android, поэтому они пытаются выполнить эту операцию в цикле, как вы можете видеть в эта ссылка. Я хочу реализовать то же самое в формах Xamarin, но я понятия не имею, как реализовать это в коде С#, есть предложения?


person Judson Abraham    schedule 17.12.2020    source источник
comment
Что конкретно вам не понятно? Кажется, это простой цикл while()   -  person Jason    schedule 17.12.2020
comment
@Jason Где этот mtuRequestCounter++; происходит от.   -  person Judson Abraham    schedule 18.12.2020
comment
@ Джейсон, можешь преобразовать его в код С# и ответить на него для лучшего понимания.   -  person Judson Abraham    schedule 18.12.2020
comment
@Jason Даже я не знаю, как получить логическое значение mtuConfirmed для RequestMtuAsync.   -  person Judson Abraham    schedule 18.12.2020
comment
RequestMtuAsync, по-видимому, возвращает согласованный MTU: rel="nofollow noreferrer">github.com/xabre/xamarin-bluetooth-le/blob/ Вы можете проверить, равно ли возвращаемое значение 512   -  person Michael Kotzjan    schedule 18.12.2020
comment
@M.Kotzjan M.Kotzjan Я собираюсь писать порциями вместо MTU, потому что MTU не работает должным образом на некоторых устройствах.   -  person Judson Abraham    schedule 01.01.2021
comment
Поэтому я собираюсь использовать подход по этой ссылке stackoverflow.com/questions/65246453/   -  person Judson Abraham    schedule 01.01.2021
comment
Рады, что нашли решение своей проблемы!   -  person Michael Kotzjan    schedule 02.01.2021