Το mvvmcross.plugin.ble και το plugin.ble χρησιμοποιούνται και για την ανακάλυψη συσκευών χαμηλής ενέργειας Bluetooth (BLE), αλλά χειρίζονται αυτή τη διαδικασία διαφορετικά με βάση την αρχιτεκτονική και την εφαρμογή τους.
mvvmcross.plugin.ble
Το MVVMCROSS.PLUGIN.BLE έχει σχεδιαστεί για να λειτουργεί μέσα στο πλαίσιο MVVMCROSS, παρέχοντας μια δομημένη προσέγγιση για την ανακάλυψη συσκευών BLE. Καταγράφει το `ibluetoothle 'και το` iadapter` ως τεμπέλης singletons, επιτρέποντας στους προγραμματιστές να επιλύσουν αυτές τις υπηρεσίες στα μοντέλα ή σε άλλα εξαρτήματα. Αυτό το plugin υποστηρίζει πλατφόρμες Android, iOS, MacOS και Windows.
Για να ανακαλύψετε συσκευές που χρησιμοποιούν το mvvmcross.plugin.ble, χρησιμοποιείτε συνήθως το `crossbluetoothle.current.adapter 'για να αποκτήσετε πρόσβαση στον προσαρμογέα. Ωστόσο, οι συγκεκριμένες μέθοδοι για τη σάρωση ή την ανακάλυψη συσκευών δεν είναι σαφώς λεπτομερώς στην τεκμηρίωση του plugin. Αντ 'αυτού, βασίζεται στην υποκείμενη εφαρμογή `CrossBluetoothle`, η οποία χρησιμοποιείται συνήθως σε έργα που βασίζονται σε Xamarin.
Το plugin σας επιτρέπει να ελέγξετε την κατάσταση Bluetooth και να ακούσετε τις αλλαγές κατάστασης, κάτι που είναι χρήσιμο για τη διαχείριση της ανακάλυψης συσκευών με βάση την τρέχουσα κατάσταση Bluetooth. Για την πραγματική σάρωση, θα χρησιμοποιούσατε συνήθως μεθόδους παρόμοιες με εκείνες της εφαρμογής της βανίλιας `crossbluetoothle`, όπως η πρόσβαση στον προσαρμογέα και η χρήση των μεθόδων του για να ξεκινήσετε τη σάρωση.
plugin.ble (CrossBluetoothle)
Το plugin.ble, που συχνά αναφέρεται ως crossbluetoothle, είναι ένα πιο γενικό plugin για την πρόσβαση στη λειτουργικότητα BLE σε πολλαπλές πλατφόρμες, συμπεριλαμβανομένου του Android και του iOS. Παρέχει έναν απλό τρόπο για να ανακαλύψετε τις συσκευές BLE χρησιμοποιώντας το `crossbluetoothle.current.adapter 'για να ξεκινήσετε τη σάρωση.
Για να ανακαλύψετε συσκευές με crossbluetoothle, θα χρησιμοποιούσατε συνήθως τις μεθόδους του προσαρμογέα για να ξεκινήσετε μια σάρωση. Το plugin υποστηρίζει την ανακάλυψη όλων των διαφημιζόμενων συσκευών, συσκευών με συγκεκριμένες διαφημιζόμενες υπηρεσίες ή συσκευές που ταιριάζουν με ένα προσαρμοσμένο φίλτρο. Μόλις ανακαλυφθούν οι συσκευές, μπορείτε να συνδεθείτε με αυτές, να εξερευνήσετε τις υπηρεσίες και τα χαρακτηριστικά τους και να εκτελέσετε λειτουργίες ανάγνωσης/εγγραφής ή να εγγραφείτε σε ειδοποιήσεις.
Όσον αφορά την ανακάλυψη συσκευών, το CrossBluetoothle προσφέρει πιο άμεσο έλεγχο της διαδικασίας σάρωσης σε σύγκριση με το mVVMCross.plugin.ble. Επιτρέπει στους προγραμματιστές να καθορίζουν φίλτρα για την ανακάλυψη συσκευών με συγκεκριμένες υπηρεσίες ή χαρακτηριστικά, καθιστώντας την πιο ευέλικτη για εφαρμογές που πρέπει να αλληλεπιδρούν με μια ποικιλία συσκευών BLE.
σύγκριση
- Αρχιτεκτονική: Το mvvmcross.plugin.ble έχει σχεδιαστεί ειδικά για χρήση στο πλαίσιο MVVMCross, παρέχοντας υπηρεσίες που μπορούν να εγχυθούν σε μοντέλα προβολής. Το plugin.ble (CrossBluetoothle) είναι πιο γενικό και μπορεί να χρησιμοποιηθεί σε οποιοδήποτε έργο που βασίζεται σε Xamarin.
- Discovery Device: Και τα δύο πρόσθετα βασίζονται στην υποκείμενη εφαρμογή BLE για την ανακάλυψη συσκευών. Ωστόσο, το CrossBluetoothle παρέχει πιο άμεση πρόσβαση σε μεθόδους και φίλτρα σάρωσης, καθιστώντας ευκολότερη την προσαρμογή της διαδικασίας ανακάλυψης. Η τεκμηρίωση του mvvmcross.plugin.ble δεν αναφέρει ρητά τις μεθόδους σάρωσης, υποδηλώνοντας ότι μπορεί να βασιστεί στον προγραμματιστή για να χρησιμοποιήσει την υποκείμενη λειτουργικότητα διασταύρωσης.
- Υποστήριξη πλατφόρμας: Και οι δύο plugins υποστηρίζουν το Android και το iOS, αλλά το MVVMCROSS.plugin.ble αναφέρει επίσης υποστήριξη για macOs και Windows, τα οποία μπορεί να είναι επωφελείς για εφαρμογές cross-platform που στοχεύουν αυτές τις πλατφόρμες.
Συνοπτικά, ενώ και τα δύο plugins επιτρέπουν την ανακάλυψη της συσκευής BLE, το MVVMCROSS.plugin.ble είναι πιο ενσωματωμένο στο πλαίσιο MVVMCROSS και ενδέχεται να απαιτεί πρόσθετη εγκατάσταση ή εξάρτηση από την υποκείμενη λειτουργικότητα CrossBletoothle για σάρωση. Το plugin.ble (CrossBluetoothle) προσφέρει μια πιο απλή προσέγγιση στην ανακάλυψη συσκευών με άμεση πρόσβαση σε μεθόδους σάρωσης και φίλτρα.
Αναφορές:[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