Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mvvmcross.plugin.ble, asenkron ble'yi plugin.ble'dan farklı şekilde nasıl kullanır


Mvvmcross.plugin.ble, asenkron ble'yi plugin.ble'dan farklı şekilde nasıl kullanır


Mvvmcross.plugin.ble ve plugin.ble Her iki eşzamansız BLE çağrısını kullanırlar, ancak bu çağrıları yönetme ve mvvmcross çerçevesi ile entegre etme yaklaşımlarında farklılık gösterirler.

mvvmcross.plugin.ble

1. Bağımlılık Enjeksiyonu: MVVMCross.plugin.ble, `` Ibluetoothle 've' iadapter 'örneklerini yönetmek için MVVMCross'un bağımlılık enjeksiyon sistemini kullanır. Bunlar, tembel initize edilmiş singletonlar olarak kaydedilir, bu da çözülmelerine ve gerektiğinde görünüm modellerine veya diğer bileşenlere enjekte edilmelerine izin verir [1].

2. Hizmet Kaydı: Eklenti, bu hizmetleri uygulama boyunca kolayca erişilebilmeleri için kaydeder. Bu, bir Bluetooth adaptörü alma veya uygulama içinde Bluetooth işlemlerini yönetme işlemini basitleştirir [1].

3. İstisna İşleme: MVVMCross.plugin.Ble, eşzamansız istisnaları farklı bir şekilde ele almasa da, özellikle Android'de istisnalar potansiyeli nedeniyle BLE çağrılarını deneme blokları ile çevrelendirilmesi önerilir [1].

4. MVVMCross ile Entegrasyon: Eklenti, MVVMCross ile sorunsuz bir şekilde çalışmak üzere tasarlanmıştır ve MVVMCross tabanlı uygulamalara kolay entegrasyon sağlar. Bu, durum restorasyonu ve iOS'taki arka plan modları gibi özellikleri içerir [1].

Plugin.ble

1. Doğrudan Erişim: Plugin.ble, bağımlılık enjeksiyonuna ihtiyaç duymadan Bluetooth işlevselliğine doğrudan erişim sağlar. Kullanıcılar Bluetooth işlemlerini yönetmek için `Crossbluetoothle.current` örneğine erişebilir [2].

2. Async işlemleri: Plugin.ble, cihazlara bağlanma, okuma/yazma özellikleri ve bildirimleri işleme gibi eşzamansız işlemleri destekler. Bununla birlikte, Android'deki GATT hataları gibi sorunlardan kaçınmak için bu async çağrılarının dikkatli bir şekilde yönetilmesini gerektirir [2].

3. İstisna İşleme: Plugin.Ble, operasyonlar sırasında meydana gelebilecek istisnaları ele almak için deneme blokları ile eşzamanlı ble çağrılarının önemini vurgular. Bu, BLE etkileşimlerinin öngörülemeyen doğası nedeniyle çok önemlidir [2].

4. Genel En İyi Uygulamalar: Eklenti, tarama yaparken eşzamanlı işlemlerden kaçınma, istenen cihaz bulunduktan sonra taramaları durdurma ve bağlantılar arasındaki karakteristik veya hizmet örneklerini önbelleğe alma gibi en iyi uygulamaları teşvik eder [2].

Anahtar Farklılıklar

- Bağımlılık enjeksiyonu: mvvmcross.plugin.ble, mvvmcross uygulamalarında hizmet yönetimini basitleştiren bağımlılık enjeksiyonunu kullanırken, Plugin.ble bunu gerektirmez.
- Entegrasyon: mvvmcross.plugin.ble, MVVMCross uygulamaları için özel olarak tasarlanmıştır, özellikleriyle entegrasyon sağlarken, Plugin.Ble daha çok yönlüdür ve herhangi bir Xamarin veya Maui projesinde kullanılabilir.
- Async çağrı yönetimi: Her iki eklenti de eşzamanlı çağrıların dikkatli bir şekilde yönetilmesini gerektirir, ancak mvvmcross.plugin.ble, MVVMCross'un hizmet yönetimine dayanır ve yapılandırılmış bir çerçevede hata işleme potansiyel olarak basitleştirir.

Özetle, her iki eklenti de eşzamansız BLE'yi dikkatli bir yönetim ve istisna işleme gerektirme açısından benzer şekilde ararken, mvvmcross.plugin.ble, MVVMCross çerçevesiyle daha sıkı bir şekilde entegre olur ve bağımlılık enjeksiyon ve hizmet yönetimi özelliklerinden yararlanır.

Alıntılar:
[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=sfgulskeoeee
[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
[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-fle-to-connect-reconnect-to-blevic