Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā mvvmcross.plugin.ble rokturis asinhrons BLE izsauc atšķirīgi no spraudņa.ble


Kā mvvmcross.plugin.ble rokturis asinhrons BLE izsauc atšķirīgi no spraudņa.ble


Mvvmcross.plugin.ble un spraudnis.ble abi rokturi asinhronie BLE zvani, taču tie atšķiras pēc šo zvanu pārvaldības un integrēšanas ar MVVMCross ietvaru.

mvvmcross.plugin.ble

1. Atkarības injekcija: mvvmcross.plugin.ble izmanto MVVMCROSS atkarības injekcijas sistēmu, lai pārvaldītu `iBluetoothle` un` iadapter` gadījumus. Tie ir reģistrēti kā slinki initializēti singletoni, ļaujot tos atrisināt un ievadīt skata modeļos vai citos komponentos pēc nepieciešamības [1].

2. Pakalpojuma reģistrācija: spraudnis reģistrē šos pakalpojumus, lai tiem varētu viegli piekļūt visā lietojumprogrammā. Tas vienkāršo Bluetooth adaptera iegūšanas procesu vai Bluetooth operāciju pārvaldību lietotnē [1].

3. Izņēmumu apstrāde: Lai gan mvvmcross.plugin.ble ne tikai atšķirīgi apstrādā asinhroniskos izņēmumus, ieteicams ieskauj zvanus ar mēģinājumu blokiem, jo ​​ir izņēmumu potenciāls, it īpaši Android [1].

4. Integrācija ar MVVMCROSS: spraudnis ir paredzēts nemanāmi darbam ar MVVMCross, ļaujot ērti integrēties MVVMCross balstītās lietojumprogrammās. Tas ietver atbalstu tādām funkcijām kā stāvokļa atjaunošana un fona režīmi iOS [1].

spraudnis.ble

1. Tieša piekļuve: spraudnis.ble nodrošina tiešu piekļuvi Bluetooth funkcionalitātei, bez nepieciešamības pēc atkarības injekcijas. Lietotāji var vienkārši piekļūt "CrossBluetoothle.Current" gadījumam, lai pārvaldītu Bluetooth operācijas [2].

2. Async operācijas: spraudnis.Ble atbalsta asinhronās operācijas, piemēram, savienošana ar ierīcēm, lasīšanas/rakstīšanas īpašībām un paziņojumiem. Tomēr tas prasa rūpīgu šo async zvanu pārvaldību, lai izvairītos no tādām problēmām kā GATT kļūdas Android [2].

3. Izņēmumu apstrāde: spraudnis.Ble uzsver apkārtējo asināro zvanu ar mēģinājumu blokiem nozīmi, lai apstrādātu izņēmumus, kas var rasties operāciju laikā. Tas ir ļoti svarīgi, pateicoties neparedzamai ble mijiedarbībai [2].

4. Vispārējā paraugprakse: spraudnis veicina labāko praksi, piemēram, izvairoties no vienlaicīgām BLE operācijām, skenējot, apturot skenēšanu, kad ir atrasta vēlamā ierīce, nevis kešatmiņā saglabājot raksturlielumus vai pakalpojumu gadījumus starp savienojumiem [2].

Galvenās atšķirības

- Atkarības injekcija: mvvmcross.plugin.ble izmanto atkarības injekciju, kas vienkāršo pakalpojumu pārvaldību MVVMCross lietojumprogrammās, savukārt spraudnis.ble to neprasa.
- Integrācija: MVVMCROSS.PLUGIN.BLE ir īpaši izstrādāta MVVMCross lietojumprogrammām, nodrošinot integrāciju ar tā funkcijām, savukārt spraudnis.ble ir daudzpusīgāks un to var izmantot jebkurā Xamarin vai Maui projektā.
- Async zvanu pārvaldība: abiem spraudņiem ir nepieciešama rūpīga async zvanu pārvaldība, bet mvvmcross.plugin.ble paļaujas uz MVVMCross pakalpojumu pārvaldību, potenciāli vienkāršojot kļūdu apstrādi strukturētā ietvarā.

Rezumējot, lai gan abi spraudņi apstrādā asinhronu BLE izsauc līdzīgi, ņemot vērā rūpīgu pārvaldību un izņēmumu apstrādi, MVVMCROSS.PLUGIN.BLE ciešāk integrējas ar MVVMCross ietvaru, izmantojot atkarības injekcijas un pakalpojumu pārvaldības funkcijas.

Atsauces:
[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-luetooth-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-connect-to-ble-devic