Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Существуют ли какие -либо конкретные проблемы, исправленные в mvvmcross.plugin.ble, что Plugin.ble не адресована


Существуют ли какие -либо конкретные проблемы, исправленные в mvvmcross.plugin.ble, что Plugin.ble не адресована


При сравнении mvvmcross.plugin.ble и plugin.ble оба используются для доступа к функциональности Bluetooth с низкой энергией (BLE) на разных платформах, таких как Android, iOS, MacOS и Windows. Тем не менее, они служат разным целям и имеют различные подходы к обработке операций BLE.

mvvmcross.plugin.ble

Этот плагин специально разработан для использования в рамках MVVMcross, которая представляет собой кроссплатформенную структуру MVVM. Он плавно интегрирует функциональность BLE в приложения MVVMcross, зарегистрировав «ibluetoothle» и «iAdapter» как ленивые инициализированные синглетоны. Это позволяет легко внедрить и разрешить эти услуги в рамках MVVMcross.

Одним из ключевых преимуществ использования mvvmcross.plugin.ble является его интеграция с структурой MVVMcross, что облегчает управление операциями BLE в приложениях MVVMcross. Тем не менее, он по своей сути не решает конкретные проблемы, которые Plugin.ble не могут обрабатывать, поскольку он полагается на Plugin.ble для базовой функции BLE.

plagin.ble

** Plugin.ble-это более общий назначенный плагин BLE, который можно использовать в различных приложениях на основе .NET, включая проекты .NET MAUI. Он обеспечивает кроссплатформенную API для операций BLE, но не включает в себя функции MVVM.

** Plugin.ble имеет несколько ограничений, особенно на Android, например, требуется выполнение характерных записей в основном потоке и обеспечение соблюдения последовательного выполнения команды BLE, чтобы избежать ошибок ГАТТ [2]. Кроме того, он консультирует против характеристики кэширования или экземпляров обслуживания между сеансами соединения, чтобы предотвратить неверные ссылки [2].

Специальные вопросы, решаемые mvvmcross.plugin.ble

Хотя mvvmcross.plugin.ble по своей сути не исправляет проблемы, которые плагин. Это может помочь смягчить проблемы, связанные с разрешением обслуживания и впрыском зависимости, которые могут возникнуть при использовании плагина.

Например, mvvmcross.plugin.ble помогает избежать проблем `nullreferenceexception`, обеспечивая должным образом зарегистрированные и разрешаемые услуги в рамках MVVMcross [3]. Тем не менее, речь идет скорее о интеграции структуры, а не в решении конкретных ограничений функциональности BLE.

Заключение

Таким образом, mvvmcross.plugin.ble предлагает удобную интеграцию функциональности BLE в приложения MVVMcross, используя плагин. BLE для базовых операций BLE. Хотя это конкретно не устраняет проблемы, с которыми не обращается плагина. Если вы разрабатываете приложение, которое использует mvvmcross, mvvmcross.plugin.ble - лучший выбор. Для других типов приложений, таких как проекты .net Maui, Plugin.ble может быть более подходящим.

Цитаты:
[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://www.nuget.org/packages/plugin.ble/
[3] https://stackoverflow.com/questions/36522920
[4] https://learn.microsoft.com/en-us/answers/questions/1518375/which-package-should-itize-for-bluetooth-low-e
[5] https://punchthrough.com/android-ble-guide/
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[7] https://stackoverflow.com/questions/38327176/xamarin-forms-lugins-ble-mvvmcross-lugins-ble
[8] https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/issues/901