Mvvmcross.plugin.ble och plugin.ble används båda för Bluetooth Low Energy (BLE) enhetsupptäckt, men de hanterar denna process annorlunda baserat på deras arkitektur och implementering.
mvvmcross.plugin.ble
Mvvmcross.plugin.ble är utformad för att arbeta inom MVVMCross -ramverket, vilket ger en strukturerad strategi för BLE -enhetsupptäckt. Den registrerar `ibluetoothle` och` iadapter 'som lata initialiserade singletoner, vilket gör att utvecklare kan lösa dessa tjänster i sina visningsmodeller eller andra komponenter. Denna plugin stöder Android-, iOS-, MacOS- och Windows -plattformar.
För att upptäcka enheter som använder mvvmcross.plugin.ble använder du vanligtvis `crossbluetoothle.current.adapter` för att komma åt adaptern. Emellertid är specifika metoder för skanning eller upptäckt enheter inte uttryckligen detaljerade i plugins dokumentation. Istället förlitar det sig på den underliggande implementeringen av "CrossBluetoothle", som vanligtvis används i Xamarin-baserade projekt.
Plugin låter dig kontrollera Bluetooth -tillståndet och lyssna på tillståndsförändringar, vilket är användbart för att hantera enhetsupptäckt baserat på den aktuella Bluetooth -statusen. För faktisk skanning skulle du vanligtvis använda metoder som liknar de i vaniljen "CrossBluetoothle" implementering, till exempel åtkomst till adaptern och använder dess metoder för att starta skanning.
plugin.ble (crossbluetoothle)
Plugin.ble, ofta kallad CrossBluetoothle, är ett mer generiskt plugin för åtkomst till BLE -funktionalitet över flera plattformar, inklusive Android och iOS. Det ger ett enkelt sätt att upptäcka BLE -enheter genom att använda `crossbluetoothle.current.adapter för att börja skanna.
För att upptäcka enheter med CrossBluetoothle skulle du vanligtvis använda adapterens metoder för att initiera en skanning. Plugin stöder att upptäcka alla annonserade enheter, enheter med specifika annonserade tjänster eller enheter som matchar ett anpassat filter. När enheter har upptäckts kan du ansluta till dem, utforska deras tjänster och egenskaper och utföra läs/skriva operationer eller prenumerera på aviseringar.
När det gäller upptäckt av enheter erbjuder CrossBluetoothle mer direkt kontroll över skanningsprocessen jämfört med mvvmcross.plugin.ble. Det gör det möjligt för utvecklare att specificera filter för att upptäcka enheter med specifika tjänster eller egenskaper, vilket gör det mer mångsidigt för applikationer som behöver interagera med en mängd BLE -enheter.
Jämförelse
- Arkitektur: mvvmcross.plugin.ble är specifikt utformad för användning inom MVVMCross -ramverket och tillhandahåller tjänster som kan injiceras i visningsmodeller. Plugin.ble (CrossBluetoothle) är mer generisk och kan användas i alla Xamarin-baserade projekt.
- Enhetsupptäckt: Båda plugins förlitar sig på den underliggande BLE -implementeringen för upptäckt av enheter. CrossBluetoothle ger emellertid mer direkt åtkomst till skanningsmetoder och filter, vilket gör det enklare att anpassa upptäcktsprocessen. Mvvmcross.plugin.bles dokumentation beskriver inte uttryckligen skanningsmetoder, vilket tyder på att det kan förlita sig på att utvecklaren använder den underliggande tvärblueToothle -funktionaliteten.
- Plattformstöd: Både plugins support Android och iOS, men MVVMCross.plugin.ble nämner också stöd för macOS och Windows, vilket kan vara fördelaktigt för applikationer för plattformar som riktar sig till dessa plattformar.
Sammanfattningsvis, medan båda plugins möjliggör BLE -enhetsupptäckt, är MVVMCross.plugin.ble mer integrerad med MVVMCross -ramverket och kan kräva ytterligare installation eller beroende av underliggande tvärblueToothle -funktionalitet för skanning. Plugin.ble (CrossBluetoothle) erbjuder ett mer enkelt tillvägagångssätt för upptäckt av enheter med direkt åtkomst till skanningsmetoder och filter.
Citeringar:[1] https://www.nuget.org/packages/mvvmcross.plugin.ble/
[2] https://github.com/don/cordova-plugin-ble-central
[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-connectivity-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-ble