mvvmcross.plugin.ble 및 plugin.ble은 모두 BLUETOOTH LOW ENERGY (BLE) 장치 검색에 사용되지만 아키텍처 및 구현에 따라이 프로세스를 다르게 처리합니다.
mvvmcross.plugin.ble
mvvmcross.plugin.ble은 mvvmcross 프레임 워크 내에서 작동하도록 설계되어 장치 발견을위한 구조화 된 접근 방식을 제공합니다. `ibluetoothle '과`iadapter'를 게으른 이니셜 화 싱글 톤으로 등록하므로 개발자는 뷰 모델 또는 기타 구성 요소에서 이러한 서비스를 해결할 수 있습니다. 이 플러그인은 Android, iOS, MacOS 및 Windows 플랫폼을 지원합니다.
mvvmcross.plugin.ble을 사용하여 장치를 발견하려면 일반적으로`crossbluetoothle.current.adapter`를 사용하여 어댑터에 액세스하십시오. 그러나 플러그인의 문서에 장치를 스캔하거나 발견하는 특정 방법은 명시 적으로 자세히 설명하지 않습니다. 대신, Xamarin 기반 프로젝트에서 일반적으로 사용되는 기본 'CrossBluetoothle'구현에 의존합니다.
플러그인을 사용하면 Bluetooth 상태를 확인하고 현재 Bluetooth 상태를 기반으로 장치 검색을 관리하는 데 유용합니다. 실제 스캔의 경우 일반적으로 어댑터에 액세스하고 스캔을 시작하기 위해 메소드를 사용하는 것과 같은 바닐라 'Crossbluetoothle'구현의 방법과 유사한 방법을 사용합니다.
plugin.ble (CrossBluetoothle)
CrossBluetoothle이라고하는 Plugin.ble은 Android 및 iOS를 포함한 여러 플랫폼에서 BLE 기능에 액세스하기위한보다 일반적인 플러그인입니다. `crossbluetoothle.current.adapter`를 사용하여 스캔을 시작하여 BLE 장치를 발견하는 간단한 방법을 제공합니다.
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-le-mvmcross-plugins-ble