Mvvmcross.plugin.ble ja plugin.ble käsitlevad mõlemad asünkroonsed ble -kõned, kuid nende lähenemisviisi erinevad nende kõnede haldamisel ja integreerimisel mvvmcrossi raamistikuga.
mvvmcross.plugin.ble
1. Sõltuvuse süstimine: mvvmcross.plugin.ble kasutab mvvmcrossi sõltuvuse süstimissüsteemi, et hallata eksemplare `ibluetoothle ja iadapter”. Need on registreeritud laiska algatatud singlenina, võimaldades neid lahendada ja süstida vajadusel vaatemudelitesse või muudesse komponentidesse [1].
2. Teenuse registreerimine: pistikprogramm registreerib need teenused nii, et neile pääseb kogu rakenduse vältel hõlpsalt juurde. See lihtsustab Bluetooth -adapteri hankimise või Bluetooth -toimingute haldamist rakenduses [1].
3. Erandite käitlemine: Kuigi mvvmcross.plugin.ble ei käsitle selgesõnaliselt asünkroonseid erandeid erinevalt, on soovitatav ümbritseda BLE-kõnesid proovimisplokkidega, kuna erandid, eriti Androidis [1].
4. integreerimine MVVMCROSS-iga: pistikprogramm on mõeldud MVVMcrossiga sujuvalt töötama, võimaldades hõlpsalt integreeruda MVVMCROSS-põhistesse rakendustesse. See hõlmab selliseid funktsioone nagu oleku taastamine ja iOS -i taustrežiimid [1].
pistikprogramm.ble
1. Otsene juurdepääs: plugin.ble pakub otsest juurdepääsu Bluetooth -funktsioonidele, ilma et oleks vaja sõltuvust süstimist. Bluetooth -toimingute haldamiseks pääseb kasutajad lihtsalt juurde `crossbluetoothle.current` eksemplarile [2].
2. Asünkroonimine: plugin.ble toetab asünkroonseid toiminguid nagu seadmetega ühendamine, lugemis-/kirjutamisomadused ja teatised. Kuid see nõuab nende asünc -kõnede hoolikat juhtimist, et vältida selliseid probleeme nagu GATT -i vead Androidil [2].
3. Erandjuhtimine: Plugin.ble rõhutab ümbritsevate asünc BLE-kõnede olulisust prooviprooviplokkidega, et käsitleda operatsioonide ajal võivad tekkida erandid. See on ülioluline tänu BLE -i interaktsioonide ettearvamatule olemusele [2].
4. Üldised parimad tavad: pistikprogramm soodustab parimaid tavasid, näiteks vältida skannimise ajal samaaegseid BLE -toiminguid, peatada skaneerimist, kui soovitud seade on leitud, ja mitte karakteristikute või teenuse esinemisjuhtude vahelised ühenduste vahelised eksemplarid [2].
Peamised erinevused
- Sõltuvuse süstimine: mvvmcross.plugin.ble kasutab sõltuvuse süstimist, mis lihtsustab teenuse haldamist MVVMcrossi rakendustes, samas kui plugin.ble seda ei vaja.
- Integreerimine: mvvmcross.plugin.ble on spetsiaalselt loodud MVVMcrossi rakenduste jaoks, pakkudes integreerimist selle funktsioonidega, samas kui pistikprogramm on mitmekülgsem ja seda saab kasutada igas Xamarini või Maui projektis.
- Async Call Management: Mõlemad pistikprogrammid nõuavad asünc -kõnede hoolikat juhtimist, kuid mvvmcross.plugin.ble tugineb MVVMCrossi teenusehaldusele, lihtsustades potentsiaalselt veakäitlemist struktureeritud raamistikus.
Kokkuvõtlikult võib öelda, et kuigi mõlemad pistikprogrammid käsitlevad asünkroonseid BLE -kõnesid samamoodi, et nõuda hoolikat juhtimist ja erandite käitlemist, integreerib mvvmcross.plugin.ble.ble tihedamalt MVVMCROSSi raamistikuga, kasutades oma sõltuvuse süstimise ja teenusehaldusfunktsioone.
Tsitaadid:[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
]
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
]
]