AndroidでのBLEに関して

さきほど書いたiOSと違って、AndroidでのBLE対応に関しては、かなり限定的で資料も乏しい状況です。

新Nexus7でSDKのBLEサンプルを動かしてみた
http://xiangcai.at.webry.info/201308/article_1.html

で書いたようにAndroid4.3(API18)からBLEをネイティブ対応したので、Nexus7(2013)であればSDKを使ってBLE対応の開発が可能です。
ただ、まだ調査中なのですが、SDKのAPIはCentralのみでPeripheralのためのAPIがなさそうです。
事前のGoogleの発表だとAndroid端末間でBLEを使用しての通信は出来ないとのことです。

そのため対向として、ブルタグのような機器か、iPhoneのBTLE Central Peripheral Transferのようなものが必要になるかと思います。

1、API仕様
以下のサイトを参照して下さい。
Bluetooth Low Energy
http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

2、サンプルプログラム
\samples\android-18\legacy\BluetoothLeGatt

サンプルを起動後、Scanボタンを押すと発見したBLE機器を一覧表示します。
タップしてから次の画面でConnectボタンを押すと機器と接続してさらに詳細な情報を表示します。



その他の選択肢
現在標準でBLEを使える端末はNexus7(2013)のみです。
といってもまだ日本では発売されていませんし、独自実装でもいいからという場合もあるかもしれませんね。
調べた範囲では、HTC、サムスン、モトローラが独自実装してSDKやライブラリを提供しているようです。
ただ、実際に確認できたのはHTCのみです。機種はHTC J butterflyです。

モトローラは
Motorola RAZR IS12MでBluetooth LEを使おうとしてる
http://iseebi.hatenablog.com/entry/2013/03/04/021835
伊勢 シンさんによる事例がありますが、モトローラの開発者ページがリンク切れで、色々検索しましたが、見つからずじまいでした。

サムスンは
Samsung BLE SDK
http://developer.samsung.com/ble
This SDK is for Samsung Galaxy devices with Android 4.2 and above.
とあります、Samsung Galaxy devicesで4.2以上のものが手元にないので試せませんでした。

HTCは
(1)HTCの提供するSDKとサンプル

以下のサイトにSDKとサンプルがあります。登録(無料)する必要があります。
http://www.htcdev.com/devcenter/opensense-sdk
画像


ここにBluetooth Low Energyのサンプルがあります。
まずは以下の手順でSDKをインストールして下さい。
https://www.htcdev.com/devcenter/opensense-sdk/download-install

BLE Additional Samplesというサンプルがあるのでダウンロードします。
画像


BLE機器をScanすることが出来ます。

(2)Bluetooth Quick Start Kit v2の中のサンプルコード
上記はHTCのサンプルでしたが、Bluetooth Developer Portalというサイトがあります。
https://developer.bluetooth.org/Pages/default.aspx

ここで、「Bluetooth Quick Start Kit v2」を配布しています。
https://developer.bluetooth.org/DevelopmentResources/Pages/Quick-Start-Kit.aspx

名前、企業名、国籍を入力する必要がありますが無料でダウンロードできます。
この中には、各種資料と、iOS, Android, Windows8用のサンプルが含まれています。以下を参照して下さい。

画像


このAndroid用サンプルはHTC J butterflyで動作します。



その他
TIのサイトに情報が集まっていますが、いくつかは古いようです。
http://processors.wiki.ti.com/index.php/Category:BluetoothLE?DCMP=lprf-stdroid&HQS=jul28-blog-wik
Android用、iOS用、PC用があります。

●Android用
SmartGattLibは試していません。
モトローラのRAZRAはObsoleteになっていますね。
HTC1X用もObsoleteになっています。
モトローラのICS用もあるようですが、機種が不明です。

●iOS用
いくつかありますが、試していません。

●PC用
色んな言語での実装サンプルです。
JavaSimplePeripheralを試してみました、ドングルを指してデバイスドライバを入れましたが、画面上のCOMところに何も表示されず認識されないようでした。
PCで実装する必要があれば参考までに



まとめ
Android用は情報、サンプルコード共に少ない状態です。
GoogleのSDKを使用するのであれば、4.3に対応した端末が必要です。旧N7、N10、N4はBLE対応していないので端末としてはNexus7(2013)のみとなります。

それ以外としてはHTC J butterflyが今のところ唯一の選択です。
HTCのSDK及びBluetooth Quick Start Kit v2のサンプルが動作するところまでは確認済みです。



(追記)
N4(4.3)でもBLE動作すると教えていただきました。
@youten_redoさん、ありがとうございます。

以前WikiPedia調べたときにはBT3.0になっていました(日本語版)
http://ja.wikipedia.org/wiki/Nexus_4
しかし英語版みると
http://en.wikipedia.org/wiki/Nexus_4
Bluetooth 4.0 with A2DPになっています。

こんな記事もあるそうです。
http://ameblo.jp/povtc/entry-11531270855.html
@8796nさん、ありがとうございます。

公式ページにも
Support for Bluetooth Smart Ready is already available on Nexus 7 (2013) and Nexus 4 devices
って書いてありますな。
http://developer.android.com/about/versions/jelly-bean.html

画像


ということで追記訂正させていただきます。



ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック