Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli az mvvmcross.plugin.ble az aszinkron BLE -t, mint a plugin.ble, mint a plugin.ble


Hogyan kezeli az mvvmcross.plugin.ble az aszinkron BLE -t, mint a plugin.ble, mint a plugin.ble


Az mvvmcross.plugin.ble és a plugin.ble mindkettő az aszinkron BLe hívásokat kezeli, ám ezeknek a hívásoknak a kezelésének megközelítésében különböznek egymástól, és integrálódnak az MVVMCross keretrendszerbe.

mvvmcross.plugin.ble

1. Függőségi injekció: Az mvvmcross.plugin.ble az mvvmcross függőségi injekciós rendszerét használja az „ibluetoothle” és az „iadapter” példányainak kezelésére. Ezeket lusta-initializált szingulettekként regisztrálják, lehetővé téve számukra a nézetmodellekbe vagy más összetevőkbe történő befecskendezését [1].

2. Szolgáltatási regisztráció: A plugin regisztrálja ezeket a szolgáltatásokat, hogy azok könnyen hozzáférhessenek az alkalmazás során. Ez egyszerűsíti a Bluetooth adapter megszerzésének vagy a Bluetooth műveletek kezelésének folyamatát az alkalmazáson belül [1].

3. Kivételkezelés: Míg az mvvmcross.plugin.ble nem kezeli kifejezetten az aszinkron kivételeket eltérően, a kivételek miatt javasolt, hogy a BLE-hívásokat próbálják meg a CATCH blokkokkal, különösen az Androidon [1].

4. Integráció az MVVMCross-hoz: A plugint úgy tervezték, hogy zökkenőmentesen működjön az MVVMCross segítségével, lehetővé téve az egyszerű integrációt az MVVMCross-alapú alkalmazásokba. Ez magában foglalja az olyan szolgáltatások támogatását, mint például az állami helyreállítás és az iOS háttérmódjai [1].

plugin.ble

1. Közvetlen hozzáférés: A plugin.ble közvetlen hozzáférést biztosít a Bluetooth funkciókhoz, anélkül, hogy függőségi injekció lenne. A felhasználók egyszerűen hozzáférhetnek a `crossbluetoothle.current` példányhoz a Bluetooth műveletek kezeléséhez [2].

2. Async műveletek: A plugin.ble támogatja az aszinkron műveleteket, mint például az eszközökhöz való csatlakozás, az olvasási/írás jellemzői és az értesítések kezelése. Ez azonban ezen aszinkronhívások gondos kezelését igényli, hogy elkerüljék az olyan kérdéseket, mint például az Android Gatt hibái [2].

3. Kivételkezelés: A plugin.ble hangsúlyozza a környező async BLe hívások próbálkozási blokkokkal való fontosságát a műveletek során előforduló kivételek kezelésére. Ez döntő jelentőségű a BLE interakciók kiszámíthatatlan jellege miatt [2].

4. Általános bevált gyakorlatok: A plugin ösztönzi a bevált gyakorlatokat, például az egyidejű BLE műveletek elkerülését a szkennelés közben, leállítja a szkennelést a kívánt eszköz megtalálása után, és nem gyorsítótárazási vagy szolgáltatási példányok a kapcsolatok között [2].

kulcsfontosságú különbségek

- Függőségi injekció: mvvmcross.plugin.ble függőségi injekciót használ, amely egyszerűsíti a szolgáltatáskezelést az MVVMCross alkalmazásokban, míg a plugin.ble ezt nem követeli meg.
- Integráció: Az mvvmcross.plugin.ble kifejezetten az MVVMCross alkalmazásokhoz készült, és integrációt biztosít annak funkcióival, míg a plugin.ble sokoldalúbb, és bármilyen Xamarin vagy Maui projektben felhasználható.
- Async híváskezelés: Mindkét beépülő modul az Async hívások gondos kezelését igényli, de az mvvmcross.plugin.ble az mvvmcross szolgáltatáskezelésén alapszik, potenciálisan egyszerűsítve a hibakezelést egy strukturált keretben.

Összefoglalva: míg mindkét beépülő modul hasonlóan kezeli az aszinkron BLE -hívásokat, ha gondos kezelést és kivételkezelést igényel, az mvvmcross.plugin.ble szorosabban integrálódik az MVVMCross keretbe, kihasználva annak függőségi injekcióját és szolgáltatáskezelési funkcióit.

Idézetek:
[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_crossplatform_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-connect-reconnect-to-ble-devic