Mvvmcross.plugin.ble и plugin.ble используются для обнаружения устройств с низкой энергией Bluetooth (BLE), но они обрабатывают этот процесс по -разному в зависимости от их архитектуры и реализации.
mvvmcross.plugin.ble
Mvvmcross.plugin.ble предназначен для работы в рамках MVVMcross, обеспечивая структурированный подход к обнаружению устройства BLE. Он регистрирует «ibluetooth» и «iAdapter» как ленивые инициализированные синглтоны, позволяя разработчикам разрешать эти услуги в своих моделях обзора или других компонентов. Этот плагин поддерживает платформы Android, iOS, MacOS и Windows.
Чтобы обнаружить устройства с использованием mvvmcross.plugin.ble, вы обычно используете `crossbluetoothle.current.adapter` для доступа к адаптеру. Тем не менее, конкретные методы сканирования или обнаружения устройств явно не подробно описаны в документации плагина. Вместо этого он опирается на базовую реализацию «CrossBluetooth», которая обычно используется в проектах на основе Xamarin.
Плагин позволяет проверить состояние Bluetooth и прослушать изменения состояния, что полезно для управления обнаружением устройства на основе текущего статуса Bluetooth. Для фактического сканирования вы обычно используете методы, аналогичные методам ванили «CrossBluetoothle», такие как доступ к адаптеру и использование его методов для начала сканирования.
plugin.ble (crossbluetoothle)
Plugin.ble, часто называемый CrossBluetoothle, является более общим плагином для доступа к функциональности BLE на нескольких платформах, включая Android и iOS. Он обеспечивает простой способ обнаружения устройств с использованием `crossbluetoothle.current.adapter` для начала сканирования.
Чтобы обнаружить устройства с CrossBluetoothle, вы обычно используете методы адаптера для инициирования сканирования. Плагин поддерживает обнаружение всех рекламируемых устройств, устройств с конкретными рекламируемыми услугами или устройств, которые соответствуют пользовательскому фильтру. После обнаружения устройств вы можете подключиться к ним, изучить их услуги и характеристики, выполнять операции чтения/записи или подписаться на уведомления.
С точки зрения обнаружения устройств, CrossBluetoothle предлагает более прямой контроль над процессом сканирования по сравнению с mvvmcross.plugin.ble. Это позволяет разработчикам указать фильтры для обнаружения устройств с конкретными службами или характеристиками, что делает их более универсальным для приложений, которые должны взаимодействовать с различными устройствами BLE.
Сравнение
- Архитектура: mvvmcross.plugin.ble специально разработана для использования в рамках MVVMcross, предоставляя услуги, которые могут быть введены в модели зрения. Plugin.ble (CrossBlueToothle) более общий и может использоваться в любом проекте на основе Xamarin.
- Обнаружение устройства: оба плагина полагаются на базовую реализацию BLE для обнаружения устройств. Тем не менее, CrossBlueToothle обеспечивает более прямой доступ к методам сканирования и фильтрам, что облегчает настройку процесса обнаружения. Документация mvvmcross.plugin.ble явно не подробно описывает методы сканирования, предполагая, что она может полагаться на разработчик, чтобы использовать базовую функциональность Crossbluetoothle.
- Поддержка платформы: оба плагина поддерживают Android и iOS, но mvvmcross.plugin.ble также упоминает поддержку MacOS и Windows, что может быть полезно для кроссплатформенных приложений, нацеленных на эти платформы.
Таким образом, в то время как оба плагина включают обнаружение устройства BLE, mvvmcross.plugin.ble более интегрирована с структурой MVVMcross и может потребовать дополнительной настройки или зависимости от базовой функции CrossBlueToothle для сканирования. Plugin.ble (CrossBluetoothle) предлагает более простой подход к обнаружению устройства с прямым доступом к методам сканирования и фильтрам.
Цитаты:[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://github.com/don/cordova-lugin-ble-central
[3] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[4] https://github.com/mrozema/xamarin-bluetooth-le
[5] https://developer.android.com/develop/connectivity/bluetooth/ble/find-ble-devices
[6] https://punchthrough.com/ble-connectivity-architecture/
[7] https://smstuebe.de/2016/05/13/blev1.0/
[8] https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-lugins-ble-mvvmcross-lugins-ble