Mvvmcross.plugin.ble y plugin.ble se usan para el descubrimiento de dispositivos de baja energía Bluetooth (BLE), pero manejan este proceso de manera diferente en función de su arquitectura e implementación.
mvvmcross.plugin.ble
Mvvmcross.plugin.ble está diseñado para funcionar dentro del marco MVVMCross, proporcionando un enfoque estructurado para el descubrimiento de dispositivos BLE. Registra a `bluetoothle` y 'adospter` como singletons inicializados perezosos, lo que permite a los desarrolladores resolver estos servicios en sus modelos de visión u otros componentes. Este complemento admite plataformas Android, iOS, MacOS y Windows.
Para descubrir dispositivos con mvvmcross.plugin.ble, generalmente usa el `Crossbluetoothle.Current.Adapter` para acceder al adaptador. Sin embargo, los métodos específicos para escanear o descubrir dispositivos no se detallan explícitamente en la documentación del complemento. En cambio, se basa en la implementación subyacente de 'Crossbluetoothle', que se usa comúnmente en proyectos basados en xamarina.
El complemento le permite verificar el estado de Bluetooth y escuchar los cambios de estado, que es útil para administrar el descubrimiento de dispositivos en función del estado actual de Bluetooth. Para el escaneo real, generalmente utilizaría métodos similares a los de la implementación de vainilla `Crossbluetoothle ', como acceder al adaptador y usar sus métodos para comenzar a escanear.
plugin.ble (Crossbluetoothle)
Plugin.ble, a menudo denominado Crossbluetoothle, es un complemento más genérico para acceder a la funcionalidad BLE en múltiples plataformas, incluidos Android e iOS. Proporciona una forma directa de descubrir dispositivos BLE mediante el uso de 'Crossbluetoothle.Current.Adapter` para comenzar a escanear.
Para descubrir dispositivos con Crossbluetoothle, normalmente usaría los métodos del adaptador para iniciar un escaneo. El complemento admite descubrir todos los dispositivos anunciados, dispositivos con servicios anunciados específicos o dispositivos que coincidan con un filtro personalizado. Una vez que se descubren los dispositivos, puede conectarse a ellos, explorar sus servicios y características, y realizar operaciones de lectura/escritura o suscribirse a notificaciones.
En términos de descubrimiento de dispositivos, Crossbluetoothle ofrece un control más directo sobre el proceso de escaneo en comparación con MVVMCross.plugin.ble. Permite a los desarrolladores especificar filtros para descubrir dispositivos con servicios o características específicas, lo que lo hace más versátil para aplicaciones que necesitan interactuar con una variedad de dispositivos BLE.
Comparación
- Arquitectura: mvvmcross.plugin.ble está específicamente diseñado para su uso dentro del marco MVVMCross, proporcionando servicios que se pueden inyectar en los modelos de vista. Plugin.ble (Crossbluetoothle) es más genérico y se puede usar en cualquier proyecto basado en Xamarin.
- Descubrimiento del dispositivo: ambos complementos dependen de la implementación BLE subyacente para el descubrimiento de dispositivos. Sin embargo, Crossbluetoothle proporciona un mayor acceso directo a los métodos y filtros de escaneo, lo que facilita la personalización del proceso de descubrimiento. La documentación de MVVMCross.Plugin.ble no detalla explícitamente los métodos de escaneo, lo que sugiere que podría confiar en el desarrollador para usar la funcionalidad Crossbluetoothle subyacente.
- Soporte de la plataforma: ambos complementos admiten Android e iOS, pero MVVMCross.plugin.ble también menciona el soporte para MacOS y Windows, lo que podría ser beneficioso para aplicaciones multiplataforma que se dirigen a estas plataformas.
En resumen, mientras que ambos complementos permiten el descubrimiento de dispositivos BLE, MVVMCross.plugin.ble está más integrado con el marco MVVMCross y puede requerir una configuración o dependencia adicional de la funcionalidad de Crossbluetoothle subyacente para escanear. Plugin.ble (Crossbluetoothle) ofrece un enfoque más sencillo para el descubrimiento de dispositivos con acceso directo a los métodos y filtros de escaneo.
Citas:[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-te/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-te/dotnet-bluetooth-le
[9] https://stackoverflow.com/questions/38327176/xamarin-forms-plugins-ble-mvvmcross-plugins-ble