mvvmcross.plugin.ble และปลั๊กอินทั้งคู่ใช้สำหรับการค้นพบอุปกรณ์ Bluetooth Low Energy (BLE) แต่พวกเขาจัดการกระบวนการนี้แตกต่างกันไปตามสถาปัตยกรรมและการใช้งาน
mvvmcross.plugin.ble
mvvmcross.plugin.ble ได้รับการออกแบบมาเพื่อทำงานภายในกรอบ MVVMcross ซึ่งเป็นวิธีการที่มีโครงสร้างในการค้นพบอุปกรณ์ BLE มันลงทะเบียน `ibluetoothle` และ` iadapter` เป็นซิงเกิลที่ขี้เกียจ-เริ่มต้นทำให้นักพัฒนาสามารถแก้ไขบริการเหล่านี้ในรูปแบบมุมมองหรือส่วนประกอบอื่น ๆ ปลั๊กอินนี้รองรับแพลตฟอร์ม Android, iOS, MacOS และ Windows
ในการค้นหาอุปกรณ์โดยใช้ mvvmcross.plugin.ble คุณมักจะใช้ `crossbluetoothle.current.adapter` เพื่อเข้าถึงอะแดปเตอร์ อย่างไรก็ตามวิธีการเฉพาะสำหรับการสแกนหรือการค้นพบอุปกรณ์ไม่ได้มีรายละเอียดอย่างชัดเจนในเอกสารประกอบของปลั๊กอิน แต่ขึ้นอยู่กับการใช้งาน `crossbluetoothle` ซึ่งใช้กันทั่วไปในโครงการที่ใช้ Xamarin
ปลั๊กอินช่วยให้คุณตรวจสอบสถานะบลูทู ธ และฟังการเปลี่ยนแปลงของรัฐซึ่งมีประโยชน์สำหรับการจัดการการค้นพบอุปกรณ์ตามสถานะบลูทู ธ ปัจจุบัน สำหรับการสแกนจริงคุณมักจะใช้วิธีการที่คล้ายกับการใช้งานวานิลลา `crossbluetootholle` เช่นการเข้าถึงอะแดปเตอร์และใช้วิธีการสแกน
plugin.ble (crossbluetoothle)
Plugin.ble มักเรียกว่า Crossbluetoothle เป็นปลั๊กอินทั่วไปสำหรับการเข้าถึงฟังก์ชั่น BLE ในหลายแพลตฟอร์มรวมถึง Android และ iOS มันเป็นวิธีที่ตรงไปตรงมาในการค้นพบอุปกรณ์ BLE โดยใช้ `crossbluetoothle.current.adapter` เพื่อเริ่มการสแกน
ในการค้นพบอุปกรณ์ที่มี crossbluetoothle คุณมักจะใช้วิธีการของอะแดปเตอร์เพื่อเริ่มการสแกน ปลั๊กอินรองรับการค้นหาอุปกรณ์ที่โฆษณาทั้งหมดอุปกรณ์ที่มีบริการโฆษณาเฉพาะหรืออุปกรณ์ที่ตรงกับตัวกรองที่กำหนดเอง เมื่อค้นพบอุปกรณ์แล้วคุณสามารถเชื่อมต่อกับพวกเขาสำรวจบริการและลักษณะของพวกเขาและดำเนินการอ่าน/เขียนหรือสมัครรับการแจ้งเตือน
ในแง่ของการค้นพบอุปกรณ์ Crossbluetoothle ให้การควบคุมโดยตรงกับกระบวนการสแกนโดยตรงเมื่อเทียบกับ mvvmcross.plugin.ble ช่วยให้นักพัฒนาสามารถระบุตัวกรองสำหรับการค้นพบอุปกรณ์ที่มีบริการหรือลักษณะเฉพาะทำให้มีความหลากหลายมากขึ้นสำหรับแอปพลิเคชันที่จำเป็นต้องโต้ตอบกับอุปกรณ์ BLE ที่หลากหลาย
การเปรียบเทียบ
- สถาปัตยกรรม: mvvmcross.plugin.ble ได้รับการออกแบบมาโดยเฉพาะสำหรับใช้ภายในเฟรมเวิร์ก MVVMcross โดยให้บริการที่สามารถฉีดเข้าไปในโมเดลมุมมอง Plugin.ble (Crossbluetoothle) เป็นแบบสามัญมากขึ้นและสามารถใช้ในโครงการที่ใช้ Xamarin ใด ๆ
- การค้นพบอุปกรณ์: ปลั๊กอินทั้งสองนั้นขึ้นอยู่กับการใช้งาน BLE พื้นฐานสำหรับการค้นพบอุปกรณ์ อย่างไรก็ตาม Crossbluetoothle ให้การเข้าถึงวิธีการสแกนและตัวกรองโดยตรงมากขึ้นทำให้ง่ายต่อการปรับแต่งกระบวนการค้นพบ MVVMCROSS.PLUGIN.BLE ไม่ได้ให้รายละเอียดวิธีการสแกนอย่างชัดเจนโดยบอกว่าอาจพึ่งพานักพัฒนาที่จะใช้ฟังก์ชันการทำงานของ crossbluetoothle
- การสนับสนุนแพลตฟอร์ม: ปลั๊กอินทั้งสองรองรับ Android และ iOS แต่ mvvmcross.plugin.ble ยังกล่าวถึงการสนับสนุนสำหรับ macOS และ windows ซึ่งอาจเป็นประโยชน์สำหรับแอปพลิเคชันข้ามแพลตฟอร์มที่กำหนดเป้าหมายแพลตฟอร์มเหล่านี้
โดยสรุปในขณะที่ปลั๊กอินทั้งสองเปิดใช้งานการค้นพบอุปกรณ์ BLE, mvvmcross.plugin.BLE รวมเข้ากับเฟรมเวิร์ก MVVMcross มากขึ้นและอาจต้องติดตั้งหรือพึ่งพาฟังก์ชัน crossbluetoothle พื้นฐานเพิ่มเติมสำหรับการสแกน 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