Mvvmcross.plugin.ble și plugin.BIN sunt ambele utilizate pentru descoperirea dispozitivului Bluetooth Low Energy (BLE), dar gestionează diferit acest proces în funcție de arhitectura și implementarea lor.
mvvmcross.plugin.ble
Mvvmcross.plugin.ble este proiectat să funcționeze în cadrul MVVMCross, oferind o abordare structurată pentru descoperirea dispozitivului BL. Înregistrează `ibluetoothle` și` iadapter` ca singletoni initializați leneși, permițând dezvoltatorilor să rezolve aceste servicii în modelele lor de vedere sau alte componente. Acest plugin acceptă platformele Android, iOS, macOS și Windows.
Pentru a descoperi dispozitive folosind mvvmcross.plugin.ble, utilizați de obicei `Crossbluetoothle.current.adapter` pentru a accesa adaptorul. Cu toate acestea, metodele specifice de scanare sau descoperire a dispozitivelor nu sunt detaliate în mod explicit în documentația pluginului. În schimb, se bazează pe implementarea de bază „Crossbluetoothle”, care este utilizată în mod obișnuit în proiectele bazate pe Xamarin.
Pluginul vă permite să verificați starea Bluetooth și să ascultați modificările de stare, ceea ce este util pentru gestionarea descoperirii dispozitivului pe baza stării Bluetooth actuale. Pentru scanarea efectivă, de obicei, ați utiliza metode similare cu cele din implementarea vaniliei „Crossbluetoothle”, cum ar fi accesarea adaptorului și utilizarea metodelor sale pentru a începe scanarea.
plugin.ble (CrossBluetoothle)
Plugin.Ble, adesea denumit CrossBluetoothle, este un plugin mai generic pentru accesarea funcționalității BLE pe mai multe platforme, inclusiv Android și iOS. Oferă o modalitate simplă de a descoperi dispozitive BLE folosind `CrossBluetoothle.Current.Adapter` pentru a începe scanarea.
Pentru a descoperi dispozitive cu CrossBluetoothle, de obicei, ați utiliza metodele adaptorului pentru a iniția o scanare. Pluginul acceptă descoperirea tuturor dispozitivelor publicitate, a dispozitivelor cu servicii publicitare specifice sau dispozitive care se potrivesc cu un filtru personalizat. Odată ce dispozitivele sunt descoperite, vă puteți conecta la ele, puteți explora serviciile și caracteristicile acestora și puteți efectua operațiuni de citire/scriere sau abonați la notificări.
În ceea ce privește descoperirea dispozitivului, CrossBluetoothle oferă un control mai direct asupra procesului de scanare în comparație cu mvvmcross.plugin.ble. Permite dezvoltatorilor să specifice filtrele pentru descoperirea dispozitivelor cu servicii sau caracteristici specifice, ceea ce îl face mai versatil pentru aplicațiile care trebuie să interacționeze cu o varietate de dispozitive BLE.
Comparație
- Arhitectură: mvvmcross.plugin.ble este conceput special pentru a fi utilizat în cadrul MVVMCross, oferind servicii care pot fi injectate în modele de vizualizare. Plugin.Ble (CrossBluetoothle) este mai generic și poate fi utilizat în orice proiect bazat pe Xamarin.
- Descoperirea dispozitivului: Ambele pluginuri se bazează pe implementarea BLE de bază pentru descoperirea dispozitivului. Cu toate acestea, CrossBluetoothle oferă acces mai mult direct la metodele și filtrele de scanare, ceea ce face mai ușor personalizarea procesului de descoperire. Documentația MVVMcross.plugin.Ble nu detaliază în mod explicit metodele de scanare, ceea ce sugerează că s -ar putea baza pe dezvoltator pentru a utiliza funcționalitatea de bază CrossBluetoothle.
- Suport platformă: Atât pluginurile acceptă Android și iOS, dar mvvmcross.plugin.Ble menționează, de asemenea, suport pentru macOS și Windows, ceea ce ar putea fi benefic pentru aplicații multiplă platforme care vizează aceste platforme.
În rezumat, în timp ce ambele pluginuri activează descoperirea dispozitivului BL, mvvmcross.plugin.Ble este mai integrat cu cadrul MVVMCross și ar putea necesita o configurație suplimentară sau o dependență de funcționalitatea de bază de bază pentru scanare. Plugin.Ble (CrossBluetoothle) oferă o abordare mai simplă a descoperirii dispozitivului cu acces direct la metode și filtre de scanare.
Citări:[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://github.com/don/cordova-plugin-ble-bentral
[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-conectivity-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-l