Mvvmcross.plugin.ble та plugin.ble використовуються для виявлення пристроїв з низькою енергією Bluetooth (BLE), але вони по -різному обробляють цей процес, виходячи з їх архітектури та впровадження.
mvvmcross.plugin.ble
Mvvmcross.plugin.ble призначений для роботи в рамках MVVMcross, забезпечуючи структурований підхід до виявлення пристроїв BLE. Він реєструє `ibluetoothle` і` iAdapter` як ледачий ініціалізований синглтон, що дозволяє розробникам вирішити ці послуги у своїх моделях View або інших компонентів. Цей плагін підтримує платформи Android, iOS, MacOS та Windows.
Щоб виявити пристрої, що використовують mvvmcross.plugin.ble, ви зазвичай використовуєте `crossbluetooth.current.adapter` для доступу до адаптера. Однак конкретні методи сканування або виявлення пристроїв чітко не детально описані в документації плагіна. Натомість він покладається на базову реалізацію `Crossbluetoothle`, яка зазвичай використовується в проектах на основі Xamarin.
Плагін дозволяє перевірити стан Bluetooth та слухати зміни стану, що корисно для управління виявленням пристроїв на основі поточного стану Bluetooth. Для фактичного сканування ви, як правило, використовуєте методи, подібні до реалізації ванілі `Crossbluetoothle`, такі як доступ до адаптера та використання його методів для початку сканування.
Plugin.ble (Crossbluetoothle)
Plugin.ble, який часто називають CrossBluetoothle, є більш загальним плагіном для доступу до функціональності BLE на декількох платформах, включаючи Android та iOS. Він забезпечує простий спосіб відкрити пристрої BLE, використовуючи `crossbluetoothle.current.adapter`, щоб почати сканування.
Щоб відкрити пристрої з CrossBluetoothle, ви, як правило, використовуєте методи адаптера для ініціювання сканування. Плагін підтримує відкриття всіх рекламованих пристроїв, пристроїв із конкретними рекламованими послугами або пристроями, які відповідають спеціальному фільтра. Після того, як пристрої будуть виявлені, ви можете підключитися до них, вивчити їхні послуги та характеристики та виконувати операції з читання/запису або підписатися на сповіщення.
Що стосується виявлення пристроїв, Crossbluetoothle пропонує більш прямий контроль над процесом сканування порівняно з mvvmcross.plugin.ble. Це дозволяє розробникам вказувати фільтри для відкриття пристроїв з конкретними послугами або характеристиками, що робить його більш універсальним для додатків, які потребують взаємодії з різними пристроями BLE.
Порівняння
- Архітектура: mvvmcross.plugin.ble спеціально розроблений для використання в рамках Mvvmcross, надаючи послуги, які можна вводити в оглядові моделі. Plugin.ble (CrossBluetoothle) є більш загальним і може використовуватися в будь-якому проекті на основі Xamarin.
- Відкриття пристрою: Обидва плагіни покладаються на основну реалізацію для виявлення пристроїв. Однак 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-plugin-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-plugins-ble-mvvmcross-plugins-ble