Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka mvvmcross.plugin.ble kahva asynkroniset BLE -puhelut toisin kuin plugin.ble


Kuinka mvvmcross.plugin.ble kahva asynkroniset BLE -puhelut toisin kuin plugin.ble


Mvvmcross.plugin.ble ja plugin.ble molemmat käsittelevät asynkronisia BLE -puheluita, mutta ne eroavat lähestymistapaansa näiden puhelujen hallinnassa ja integroinnissa MVVMCross -kehykseen.

mvvmcross.plugin.ble

1. Riippuvuusinjektio: mvvmcross.plugin.ble käyttää Mvvmcrossin riippuvuusinjektiojärjestelmää hallitsemaan `` iBluetoothle` ja `iadapter`. Ne on rekisteröity laiskoiksi aloitteiksi singletoneiksi, jolloin ne voidaan ratkaista ja injektoida näkymämalleihin tai muihin komponentteihin tarpeen mukaan [1].

2. Palvelun rekisteröinti: Laajennus rekisteröi nämä palvelut, jotta niihin pääsee helposti koko sovelluksen ajan. Tämä yksinkertaistaa Bluetooth -sovittimen tai Bluetooth -toimintojen hallintaprosessia sovelluksen sisällä [1].

3. Poikkeuskäsittely: Vaikka mvvmcross.plugin.ble ei nimenomaisesti käsittele asynkronisia poikkeuksia eri tavalla, on suositeltavaa ympäröida BLE-puheluita kokeilun lohkolla poikkeusten poikkeusten vuoksi, etenkin Androidilla [1].

4. Integraatio MVVMCross: Tämä sisältää tuen ominaisuuksille, kuten valtion palauttamiselle ja iOS: n taustatiloille [1].

plugin.ble

1. Suora käyttöoikeus: plugin.ble tarjoaa suoran pääsyn Bluetooth -toiminnallisuuteen ilman riippuvuusinjektion tarvetta. Käyttäjät voivat yksinkertaisesti käyttää `Crossblueothle.current` -ilmentymiä hallitsemaan Bluetooth -operaatioita [2].

2. async -toiminnot: plugin.ble tukee asynkronisia toimintoja, kuten yhteyden muodostaminen laitteisiin, lukemisen/kirjoittamisen ominaisuuksiin ja ilmoitusten käsittelyyn. Se vaatii kuitenkin näiden ASYNC -puheluiden huolellista hallintaa, jotta vältetään esimerkiksi GATT -virheet Androidilla [2].

3. Poikkeuskäsittely: plugin.ble korostaa ympäröivien async BLE -puheluiden merkitystä kokeilun lohkolla käsittelemään poikkeuksia, joita voi esiintyä toiminnan aikana. Tämä on ratkaisevan tärkeää BLE -vuorovaikutusten arvaamattoman luonteen vuoksi [2].

4. Yleiset parhaat käytännöt: Laajennus kannustaa parhaita käytäntöjä, kuten samanaikaisten BLE -toimintojen välttämistä skannauksen aikana, skannausten lopettamisen jälkeen, kun haluttu laite on löydetty, eikä välimuisti ominaispiirteitä tai palvelutapauksia yhteyksien välillä [2].

keskeiset erot

- Riippuvuusinjektio: mvvmcross.plugin.ble käyttää riippuvuusinjektiota, mikä yksinkertaistaa palvelunhallintaa MVVMCross -sovelluksissa, kun taas plugin.ble ei vaadi tätä.
- Integraatio: MVVMCross.Plugin.ble on suunniteltu erityisesti MVVMCross -sovelluksiin, mikä tarjoaa integroinnin ominaisuuksiensa kanssa, kun taas plugin.ble on monipuolisempi ja sitä voidaan käyttää missä tahansa Xamarin- tai Maui -projektissa.
- ASYNC -puhelun hallinta: Molemmat laajennukset vaativat async -puhelujen huolellista hallintaa, mutta MVVMCross.Plugin.ble riippuu MVVMCROSS: n palvelunhallinnasta, mikä mahdollisesti yksinkertaistaa virheenkäsittelyä jäsenneltyyn kehykseen.

Yhteenvetona voidaan todeta, että vaikka molemmat laajennukset käsittelevät asynkronisia BLE -puheluita samalla tavalla huolellisen hallinnan ja poikkeuskäsittelyn vaatiessa, mvvmcross.plugin.ble integroituu tiiviimmin MVVMCross -kehykseen hyödyntäen sen riippuvuuden injektio- ja palvelunhallintaominaisuuksia.

Viittaukset:
[1] https://www.nuget.org/packages/mvmcross.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
.
.