MVVMCROSS.Plugin.ble varmistaa ketjun turvallisuuden Bluetoothin alhaisen energian (BLE) toiminnalle pääasiassa asynkronisten toimintojen huolellisen käsittelyn ja alustakohtaisten ohjeiden noudattamisen. Tässä on yksityiskohtainen yleiskatsaus siitä, kuinka se saavuttaa säieturvallisuuden:
1. BLE -komentojen peräkkäinen suorittaminen **
Mvvmcross.plugin.ble korostaa BLE: n komentojen merkitystä peräkkäin, etenkin Androidilla. Tämä tarkoittaa, että yhden toimenpiteen odottaminen suoritetaan ennen toisen aloittamista. Tämä lähestymistapa auttaa estämään GATT -virheitä, jotka voivat tapahtua, kun komennot suoritetaan samanaikaisesti ilman asianmukaista synkronointia [1].2. Päälankakäyttö **
Tietyissä toiminnoissa, kuten kirjoitusominaisuuksien kirjoittamisessa, on ratkaisevan tärkeää suorittaa nämä toimet päälangasta. Tämä on erityisen tärkeää Androidissa, jossa sen tekemättä jättäminen voi johtaa GattwriteErroriin [1]. Varmistamalla, että tällaiset toiminnot suoritetaan pääkierrellä, laajennus välttää mahdolliset kierteitysongelmat.3. Tyylikkäiden tai palvelutapausten välimuistien välttäminen **
Kun laite on irrotettu, kaikki palvelut ja ominaiset esiintymät muuttuvat virheellisiksi. Kierteiden turvallisuuden ylläpitämiseksi mvvmcross.plugin.ble neuvoo näiden tapausten välimuistissa olevaa yhteysistuntojen välillä. Sen sijaan se suosittelee `getServiceaSync` ja` getCharacteristAsync` käyttöä, jotta saadaan voimassa olevat tapaukset joka kerta kun yhteys muodostuu [1].4. Virheenkäsittely **
Laajennus kannustaa ympäröiviin asynkronisia BLE-sovellusliittymiä kokeilevilla lohkolla. Tämä käytäntö auttaa saamaan poikkeuksia, joita voi tapahtua BLE -operaatioiden aikana, jotka voivat olla yleisiä Bluetooth -viestinnän luonteen vuoksi. Oikea virheenkäsittely varmistaa, että sovellus pysyy vakaana jopa odottamattomien ongelmien kohdalla [1].5. Alustakohtaiset näkökohdat **
MVVMCROSS.Plugin.ble on suunniteltu toimimaan useilla alustoilla, mukaan lukien Android, iOS ja macOS. Siinä otetaan huomioon alustakohtaiset rajoitukset ja parhaat käytännöt, kuten skannauksen välttäminen suoritettaessa muita BLE-toimintoja akun tyhjennyksen minimoimiseksi ja kokonaistutkimuksen parantamiseksi [1].6. laiskojen alustettujen singletonien käyttö **
MVVMCROSS: n yhteydessä laajennus rekisteröi `iBluetoothle` ja` iadapter` laiskoina alustetuina singletoneina. Tämä lähestymistapa mahdollistaa näiden palvelujen helpon injektoinnin ja ratkaisun varmistaen, että ne alustetaan ja hallitaan asianmukaisesti sovelluksen elinkaaren aikana [1] [10].Noudattamalla näitä ohjeita ja parhaita käytäntöjä, MVVMCross.Plugin.ble auttaa kehittäjiä varmistamaan säieturvallisuuden ja luotettavuuden niiden BLE-yhteensopivissa sovelluksissa. Kehittäjien on kuitenkin ratkaisevan tärkeää ymmärtää taustalla oleva BLE -tekniikka ja sen rajoitukset hyödyntää laajennusta tehokkaasti ja välttää yleisiä sudenkuoppia [11].
Viittaukset:[1] https://www.nuget.org/packages/mvmcross.plugin.ble/
.
.
[4] https://www.nuget.org/packages/mvmcross.plugin.ble/2.2.0-pre5
.
[6] https://github.com/xabre/xamarin-bluetooth-le/issues/524
.
[8] https://github.com/xabre/xamarin-bluetooth-le/issues/356
[9] https://devzone.nordicsemi.com/f/nordic-q-a/88005/does-ncs-ble-api-tread-safe
[10] https://github.com/mrozema/xamarin-bluetooth-le
[11] https://www.reddit.com/r/dotnet/comments/1bds6rj/why_there_is_no_good_crossplatform_bluetooth/