Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie geht mvvmcross.plugin.


Wie geht mvvmcross.plugin.


Mvvmcross.plugin.ble und plugin.ble beide behandeln asynchrone BLE -Anrufe, unterscheiden sich jedoch in ihrem Ansatz, diese Anrufe zu verwalten und in das MVVMCross -Framework zu integrieren.

Mvvmcross.plugin.ble

1. Abhängigkeitsinjektion: mvvmcross.plugin.ble verwendet das Abhängigkeitsinjektionssystem von MVVMCross, um Instanzen von "ibluetoothle" und "iadapter" zu verwalten. Diese werden als faul-initialisierte Singletons registriert, sodass sie bei Bedarf aufgelöst und in Ansichtsmodelle oder andere Komponenten injiziert werden können [1].

2. Serviceregistrierung: Das Plugin registriert diese Dienste, damit sie während der gesamten Anwendung problemlos zugreifen können. Dies vereinfacht den Prozess des Erhaltens eines Bluetooth -Adapters oder der Verwaltung von Bluetooth -Operationen in der App [1].

3. Ausnahmehandhabung: Während mvvmcross.plugin.ble nicht explizit asynchrone Ausnahmen unterschiedlich behandelt, wird empfohlen, Aufrufe mit Versuchsblöcken aufgrund des Potenzials für Ausnahmen, insbesondere auf Android, zu umgeben [1].

4. Integration mit MVVMCross: Das Plugin ist so ausgelegt, dass sie nahtlos mit MVVMCross funktioniert und eine einfache Integration in mvvmcross-basierte Anwendungen ermöglicht. Dies beinhaltet die Unterstützung für Funktionen wie die Wiederherstellung von Zustand und die Hintergrundmodi auf iOS [1].

Plugin.ble

1. Direktzugriff: Plugin.ble bietet direkten Zugriff auf Bluetooth -Funktionalität, ohne dass Abhängigkeitsinjektion erforderlich ist. Benutzer können einfach auf die Instanz `crossBluetoothle.current` zugreifen, um Bluetooth -Operationen zu verwalten [2].

2. ASYNC OPERATIONS: Plugin.ble unterstützt asynchrone Vorgänge wie die Verbindung zu Geräten, Lese-/Schreibmerkmalen und Handhabungsbenachrichtigungen. Es erfordert jedoch eine sorgfältige Verwaltung dieser asynchronisierten Aufrufe, um Probleme wie Gattfehler auf Android zu vermeiden [2].

3. Ausnahmehandhabung: Plugin.ble betont, wie wichtig es ist, asynchronen Aufrufe mit Try-Catch-Blöcken umzusetzen, um Ausnahmen zu verarbeiten, die während der Operationen auftreten können. Dies ist aufgrund der unvorhersehbaren Natur der BLE -Wechselwirkungen von entscheidender Bedeutung [2].

4. Allgemeine Best Practices: Das Plugin fördert Best Practices wie das Vermeiden von gleichzeitigen BLE -Operationen beim Scannen, das Stoppen von Scans, sobald das gewünschte Gerät gefunden wurde, und nicht zwischen Merkmalen oder Serviceinstanzen zwischen Verbindungen [2].

Schlüsselunterschiede

- Abhängigkeitsinjektion: mvvmcross.plugin.ble verwendet Abhängigkeitsinjektion, die das Service -Management in MVVMCross -Anwendungen vereinfacht, während Plugin.ble dies nicht benötigt.
- Integration: mvvmcross.plugin.ble ist speziell für mvvmcross -Anwendungen ausgelegt und bietet Integration in seine Funktionen, während Plugin.ble vielseitiger ist und in jedem Xamarin- oder Maui -Projekt verwendet werden kann.
- ASYNC -Anrufverwaltung: Beide Plugins erfordern eine sorgfältige Verwaltung von Async -Aufrufen, aber mvvmcross.plugin.ble stützt sich auf das Service -Management von MVVMCross, wodurch die Fehlerbehandlung in einem strukturierten Framework möglicherweise vereinfacht wird.

Zusammenfassend lässt sich sagen, dass beide Plugins asynchrone BLE -Aufrufe in ähnlicher Weise verarbeiten, um eine sorgfältige Verwaltung und Ausnahmeregelung zu erfordern.

Zitate:
[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://www.youtube.com/watch?v=sfgulskeoee
[5] https://www.reddit.com/r/dotnet/comments/1bds6rj/why_there_is_no_good_crosplatform_bluetooth/
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
[7] https://stackoverflow.com/questions/69735708/xamarin-plugin-ble-why-data-read-doesnt-change
[8] https://learn.microsoft.com/en-us/answers/questions/2101489/using-plugin-ble-to-connect-reconnect-to-ble-tevic