14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MonacaAdvent Calendar 2017

Day 6

Cordovaで使えるBLE(Bluetooth Low Energy)対応プラグイン一覧

Last updated at Posted at 2017-12-06

※ 2020-02-24 最新状況を調べ直したのと、jins-meme-pluginの記述を削除しました

#はじめに
BLE(Bluetooth Low Energy)のプラグインの状況をまとめてみました。結論から言うと、cordova-plugin-ble-central/cordova-plugin-ble-peripheralとcordova-plugin-bluetoothleは使用上の差は殆どないので好きな方を使ってくださいになりますが、多少cordova-plugin-bluetoothleのほうが高機能なので、新しく触る方はcordova-plugin-bluetoothleをオススメします。

#前提知識(1)~BLEのP2PとBroadcast
BLE(Bluetooth Low Energy)には接続方式としてそもそも2種類(1対1通信、Broadcast)あります。ここでは1対1通信に特化して説明していきます。この2つの違いですが以下の記事が詳しいので参照してみてください。Broadcastはその名の通り暗号化せず内容を垂れ流すものですので、重要なデータを扱うデバイスではあまり使用されていないと思うので、ここでは1対1通信に特化して説明していきます。
Bluetooth Low Energy(BLE)/ iBeaconとは

#前提知識(2)~CentralとPeripheral
1対1通信の場合役割が明確に決まっており、BLE接続する機器は必ずどちらかがCentralになり、どちらかがPeripheralになります。通常スマホがCentralとなりデータを受け取ることが多いですが、スマホがPeripheralとなれるプラグインも公開されています。

#プラグイン
それではプラグインを3つ紹介させていただきます。

##cordova-plugin-ble-central

  • 対応OS: iOS/Android
  • 対応モード: centralのみ
  • 概要: サンプルが揃っていて使いやすいプラグインです。私も個人的にRealtime Running Dashboard LiteというアプリでBLE心拍計を使用しましたが、とても簡単にインテグレーションできました。

##cordova-plugin-ble-peripheral

  • 対応OS: iOS
  • 対応モード: peripheralのみ
  • 概要: 通常スマホをCentralにすることがほとんどなので、「なぜわざわざスマホをPeripheralにするんだ?」という疑問が湧くかもしれません。その問いに関して「やってみたいから」以外の明確な答えが出せないのですがw、例えば「XXのデバイスのフリをさせる」みたいなことをやろうとしたけどハードウェアは大抵configurableではないので、そういうものをエミュレーションする用途に使用したりします。

##cordova-plugin-bluetoothle

  • 対応OS: iOS/Android/Windows10UWP
  • 対応モード: CentralとPeripheralの両方
  • 概要: かなり高機能なプラグインで、CentralとPeripheralの両方になることができます。

制約

##Central共通(cordova-plugin-ble-central/cordova-plugin-bluetoothle)

  • Android: Bondingをしていないデバイスで接続済みのデバイスを取得することはできない(ネイティブ機能ではLEではないクラスで実施できます)
  • iOS: MACアドレスは取れない(ネイティブ機能でも取れません)

##Peripheral共通(cordova-plugin-ble-peripheral/cordova-plugin-bluetoothle)

  • Android: 独自のServiceUUIDを割り当ててアドバタイズすることはできない

#おまけ1~プラグインを使わないという選択肢(Web Bluetooth API)

  • 対応ブラウザ: Can I use
  • 対応モード: centralのみ
  • 概要: まだ出始めたものなのでサポートブラウザは少ないのですが、ブラウザのみ・プラグイン不要で使う技が出始めています。Web技術の進歩は本当にすごいですね。
  • 参考資料
    Web Bluetooth

#おまけ2~Capacitorではどうなの?

IonicがCapacitorへの置き換えを進めている状況ですので、Capacitorでの状況も気になるところです。今の所、Capacitorで使えるプラグインは以下になります。
BluetoothLEClient
現在はWebとAndroidにのみ対応とのことです。

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?