mvvmcross.plugin.bleとplugin.bleはどちらもBluetooth Low Energy(BLE)デバイスの発見に使用されますが、アーキテクチャと実装に基づいてこのプロセスを異なる方法で処理します。
mvvmcross.plugin.ble
MVVMCross.Plugin.bleは、MVVMCrossフレームワーク内で動作するように設計されており、BLEデバイスの発見に対する構造化されたアプローチを提供します。 「ibluetoothle」と「iadapter」を怠zyなイネ化されたシングルトンとして登録し、開発者がビューモデルや他のコンポーネントでこれらのサービスを解決できるようにします。このプラグインは、Android、iOS、MacOS、およびWindowsプラットフォームをサポートしています。
mvvmcross.plugin.bleを使用してデバイスを見つけるには、通常、 `crossbluetoothle.current.adapter`を使用してアダプターにアクセスします。ただし、デバイスをスキャンまたは発見するための特定の方法は、プラグインのドキュメントで明示的に詳述されていません。代わりに、Xamarinベースのプロジェクトで一般的に使用されている基礎となる「Crossbluetoothle」の実装に依存しています。
プラグインを使用すると、Bluetooth状態をチェックして状態の変更を聞くことができます。これは、現在のBluetoothステータスに基づいてデバイスの発見を管理するのに役立ちます。実際のスキャンでは、通常、アダプターへのアクセスやそのメソッドを使用してスキャンを開始するなど、バニラ「Crossbluetoothle」の実装のメソッドと同様の方法を使用します。
plugin.ble(crossbluetoothle)
Plugin.bleは、しばしばCrossbluetoothleと呼ばれ、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機能に追加のセットアップまたは依存が必要になる場合があります。 Plagin.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-mvvcross-plugins-ble