【コラム】

塩田紳二のアンドロイドなう

32 AndroidがBluetooth 4.0を正式サポート

 

32/121

5月14日から米国で開催されたGoogle I/Oで、AndroidのBluetooth 4.0対応が発表されました。API 18となる次のAndroidに搭載されるとのことです。今回のGoogle I/Oでは、新しいNexusシリーズも新しいAndroidも発表されなかったので、「Key Lime Pie」と呼ばれる次のバージョンがAndroid 5.0なのか4.3なのかさえもわかりませんが、API番号だけは順番につけられるので、現在のAPI 17(JELLY_BEAN_MR1。Android 4.2.x)の次になるバージョンであることだけは分かっています。Bluetooth 4.0対応は、それほど小さな変更ではないので、次は5.0と大きく番号が変わるような気がします。

さて、一部の読者の方は、すでにBluetooth 4.0に対応したAndroidスマートフォンが国内で出ていたじゃないか? と思われるかもしれません。実際2011年に登場したNECカシオモバイルコミュニケーションズのN-01Dなどは、Bluetooth 4.0対応となっています。これは、Googleが実装したのではなく、NECカシオモバイルコミュニケーションズが独自に対応した結果です。

今回のAndroidのBluetooth 4.0対応は、Googleが公式にAndroidとして対応を行うもので、次期Androidを搭載するスマートフォンやタブレットがBluetooth 4.0対応のハードウェアを搭載していれば、Bluetooth 4.0対応となります。現在のAndroid 4.2まででは、たとえBluetooth 4.0対応のハードウェアを搭載していても(すでに多くの新機種が採用しているといいます)、メーカーが独自に実装しないかぎり、Bluetooth 4.0では動作せず、Bluetooth 3.0相当になってしまいます。

このAndroidの4.0対応とはどういうことなのでしょうか? その話に入るまえに少しBluetoothについて整理しておきましょう。Bluetoothは、携帯電話とデバイス間を接続するケーブルを無線に置き換える「ケーブルリプレースメント」として仕様がスタートしました。Bluetoothがわかりにくいのは、携帯電話関係のメーカーが多かったため、パソコンではなく携帯電話のようなハードウェアを想定して作られたからです。

Bluetoothでは、接続できるデバイスやその使い方をまとめて「プロファイル」で定義します。パソコン的にいえば、パソコン側に組み込まれるプロトコルを処理するレイヤードライバと制御用アプリケーションとデバイス側に実装されるソフトウェアをまとめて定義したものです。そのため、プロファイルの有無が接続できるデバイスの種類を決めていましたが、それが「Bluetoothスタック」と呼ばれるソフトウェアの中で実装されていたために、同一のハードウェアでも、スタックが違えば、対応できるプロファイルが違い、接続できるデバイスが違っていたのです。ここが、一般のパソコンユーザーに最もわかりにくいところでした(図01)。パソコンのUSBデバイスなら間違いなくあとから登場した製品でも接続が可能です。これは、デバイスドライバ(レイヤードライバ)や制御アプリケーションをあとから組み込むことができたからです。ところが、メーカーにより内部構造が違っているため、特定のメーカーのスタックに対してプロファイルを作成できたとしても、他のメーカーのスタック用には別に開発を行う必要があります。このように流用ができない環境であったために、Bluetoothでは、プロファイルを後から追加することはできませんでした。

図01: Bluetoothは、バージョンにより仕様が決まる。しかし、実際に機器が内蔵する半導体デバイスにより、対応するバージョンが決まる。さらにその上で動作するBluetoothスタックがあり、ここに定義されたプロファイルが接続可能なデバイスを決定する

マイクロソフトによるBluetoothへの正式対応はVistaからになり、スタックとしてまともに動作するようになったのは実質Windows 7からです。それまで、Bleutoothスタックは、デバイスメーカーやサードパーティが提供するものでした。

携帯電話はそれでも困ることはありませんでした。一般に携帯電話は出荷されたあとにデバイスドライバを組み込むといった概念がなかったからです。

Windows 7では、マイクロソフトのBluetoothスタックは完全な標準にはならず、一部のハードウェアメーカーやUSBアダプタのメーカーは、サードパーティスタックを利用していました。たとえば、Bluetooth 4.0は、20xx年に規格が成立したのに、マイクロソフトがこれに対応したのはWindows 8から(2012年××)でした。マイクロソフトのBluetoothスタックの対応は、このようにまだ後手に回っている状態で、最新のBluetoothを利用したけれは、まだ、サードパーティのスタックを利用しなければなりません。そして、複数のスタックがあるために、デバイスメーカーは、追加のプロファイルをいくつも作らねばならず、事実上、プロファイルをデバイスに付けて販売するということができません。こうした背景があるため、Windows上のBluetoothのエコシステムは、中途半端なままになっています。

Bluetooth 4.0では、従来の3.0までの通信方式にくわえ、新たにLE(Low Energy)という通信方式が追加されました。これは、微弱な電波を使うため、電力消費をきわめて小さくできる通信方式です(図02)。しかし、このLEは、従来の通信方式であるBR(Basic Rate)とまったく違っているため、従来のBluetooth 3.0までのデバイスとは通信を行うことができません。ちなみにBluetooth 3.0までは、BRに加え、EDR(Enhanced Data Rate)およびHS(High Speed)という通信方式もありますが、どのデバイスも必ずBRでの通信が可能になっていました。このため、「Bluetooth 3.0+EDR」といった表記を行うことがあります。

図02: Bluetooth 4.0には、LE(Low Energy)とBR(Basic Rate)の2つの通信方式がある。Bluetooth Smart Readyデバイスは、両方の通信方式に対応した「デュアルモード」になっているが、Bluetooth SmartはLEのみ、3.0までのBlueooth機器はBRでしか通信できない。なお、BluetoothではBRに加えEDRやHSといった通信方式を追加で持つことができる

LEでは、BRとの通信ができない代わりに、デバイスとの通信定義するプログラムをあとから追加可能なものとして定義しました。具体的には、GATT(Generic Attribute Profile)というプロファイルが組み込まれていて、これを使うことで、デバイスと通信するプログラムを簡単に開発できるようにしました。

こうした仕組みに対して、Bluetoothを管理しているBluetooth SIGは、「Bluetooth Smart」と「Bluetooth Smart Ready」というロゴを作りました。Bluetooth Smartは、LEに対応したデバイスで、GATTを装備して独自の機能(サービス)を提供します。Bleutooth Smart Readyは、Bluetooth 4.0を装備したホスト(コンピュータ側)で、やはりGATTを装備し、Bleutooth Smartデバイス用のアプリを組み込めるようにしています。なお、Bleutooth Smart Readyには、従来のBluetooth 3.0までの仕様も含まれているため、従来のBluetoothデバイスとも接続することができます(図03)。しかし、従来のBluetooth 3.0までのデバイスはLEを持っていないためにBleutooth Smartデバイスと接続することはできません。

図03: Bluetooth Smart Readyは、デバイスアプリで新規のSmartデバイスに対応する能力を持つ。このため、アプリが利用できるならSmartデバイスは必ずSmart Readyホストから利用可能。これに対してBluetooth同士は、プロファイルが一致したときのみ利用可能だが、一般にプロファイルを後から追加することができない

Bluetooth SmartとSmart Readyのロゴがあるということは、新しいSmartデバイスにもアプリの追加で対応が可能になるということを意味します。つまり、これにより、デバイス+アプリという形でのエコシステムが完成したというわけです。

明確にBluetooth SmartReadyを謳っていないものの、実はiPhone 4S/5は、SmartReadyになっています。搭載されているハードウェアがBluetooth 4.0対応でかつ、Smartデバイス用のアプリを開発できるようになっているからです。このため、現在は、iPhoneを中心にしてSmart/SmartReadyのエコシステムができあがりつつあります。今回のAndroidがBluetoothに対応というニュースは、このエコシステムにAndroidも参加するという話なのです。昨年あたりから出荷されたスマートフォンやタブレットのBluetoothはSmart Readyに対応可能なものになっているといいます。システムのアップデートなどでSmart Readyになるアンドロイド機も出てくる可能性があります。

編集部注: 本稿は、2013年6月14日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。

32/121

インデックス

連載目次
第121回 Android N、「通知」の表示形式が変更に
第120回 「Android N」の新プレビュー版、Developer Preview 4が登場
第119回 「Android N」プレビュー その3
第118回 「Android N」プレビュー その2、Nの改良点
第117回 「Android N」プレビュー その1
第116回 「ZenWatch 2」の充電動作を調べて見た
第115回 Android Wearのバッテリ関連機能を検証してみる
第114回 Android Wearを再評価してみる
第113回 Nexus 7をカーナビにしてみた(その3)
第112回 Nexus 7をカーナビにしてみた(その2)
第111回 Nexus 7をカーナビにしてみた(その1)
第110回 画面キャプチャに便利なシステムUI調整ツール
第109回 2016年の注目はタブレット
第108回 「Nexus 5X」と「USB Type-C」
第107回 「Nexus 5X」と「LTE」
第106回 Android 6.0 ストアとアプリ
第105回 Nexus 5XでみるAndroid 6.0 Marshmallow
第104回 「Nexus 5X」を買いました
第103回 「Android Mのプレビュー3」を試す(前編)
第102回 Android M プレビュー2 (準備編)
第101回 「LG G Watch」のその後
第100回 「Zenefone 2」買いました
第99回 ちいさくてかわいい「LG L20」、イギリスで買ってみました
第98回 「Google日本語入力」アップデートで何が変わった?
第97回 どのアプリで開く? 「インテント」の仕組み
第96回 「OneNote」をつかってみた
第95回 ロリポップのマテリアルデザインをまとめてみる
第94回 「Email Markup」って何?
第93回 Outlookは来たけれど
第92回 Office Previewつかってみた
第91回 Google INBOXを使ってみる
第90回 AndroidWareの文字盤を自作する
第89回 Android Ware Lollipop版
第88回 「Nexus Player」を試す - ソフトウェア編
第87回 「Nexus Player」を試す - ハードウェア編
第86回 「Nexus 9」ファーストインプレッション - ソフトウェア(Lollipop)編
第85回 「Nexus 9」ファーストインプレッション - ハードウェア編
第84回 充電しながらUSBデバイスが使えるホストケーブル
第83回 Android "L"プレビューとAndroidWareがアップデート
第82回 ちょっとイケてる「Kyocera Hydro Vibe」
第81回 Android "L" バッテリ消費を監視する
第80回 アクセスポイントの基本を知る
第79回 OneDriveとGoogleドライブ
第78回 シェルのネットワーク関連コマンド
第77回 "L"の中身
第76回 アンドロイドウェア(Android Wear)は暫定バージョン?
第75回 LGのスマートウォッチ「G Watch」
第74回 "L"がくる
第73回 次は「Lollipop」か? その前にKitKatが4.4.3に
第72回 VPNを使う その3 「VPNをアンドロイドから使う」
第71回 「Chromecast」とは?
第70回 VPNを使う その2 「VPNサーバーを立てる」
第69回 VPNを使う その1 「基礎編」
第68回 アンドロイドのストレージ
第67回 「NVIDA SHIELD」のソフトウェア
第66回 「NVIDA SHIELD」のハードウェア
第65回 HDMIとMHL、SlimPort - ディスプレイ接続端子を整理してみる
第64回 「LG L1 II」を買ってみた
第63回 アンドロイドに音楽を「聞かせる」
第62回 住所録の秘密
第61回 Outlook.comをカレンダーに表示する
第60回 ソースコードはどこにある?
第59回 AndroidのBluetoothテザリングとWindows 8.1
第58回 NFCでマニュアル参照を簡単に
第57回 あらためて「ポータブルアクセスポイント」をきちんと試してみる
第56回 「ビルド番号」ってなに?
第55回 画面キャプチャをバッチファイルで実行
第54回 adbコマンドをちょっと解説
第53回 「android 4.4 "Kit Kat"」で画面を録画する
第52回 「android 4.4 "Kit Kat"」の内部的な変更点
第51回 「android 4.4 "Kit Kat"」を解説
第50回 「Nexus 5」を買ってみた
第49回 Google Keepはリマインダーだった
第48回 android 4.2からサポートされた「ワイヤレスディスプレイ」
第47回 画面キャプチャー
第46回 ヘッドセットの秘密
第45回 Nexus 7のLTEモデル
第44回 Nexus 4買いました。アメリカで。
第43回 ブートローダーとfastboot
第42回 Jelly Beans 4.3 Returns
第41回 Chromecast、テレビに刺さる
第40回 デバイスマネージャでAndroidの位置を確認
第39回 新しいNexus 7を買ってみた
第38回 Jelly Beans 4.3
第37回 レノボ「K900」を国際版化
第36回 NFCで遊ぶ
第35回 自宅で簡単ファイル転送
第34回 レノボ「K900」のカスタマイズされたJelly Beansを見てみる
第33回 CloverTrail+のスマートフォン、レノボ「K900」を買ってみた
第32回 AndroidがBluetooth 4.0を正式サポート
第31回 ARMの次世代CPU「Cortex-A12」
第30回 SDKをインストールしよう
第29回 ウィジェットを活用
第28回 QRコードでお手軽設定
第27回 XPERIA Tipoとロンドンアンロック屋事情
第26回 diNovoキーボードを使う
第25回 キーボードをカスタマイズする
第24回 Androidキーボードのしくみ
第23回 2段階認証を使おう
第22回 いらないプリインストールアプリを削除
第21回 64bitなんて必要なのかしら?
第20回 アメリカでアンドロイドの読書端末を買ってみた
第19回 Android 4.2の新機能
第18回 Android Beamって何だ?
第17回 NFCで何ができる?
第16回 Nexus 7をアメリカで買ってみた
第15回 AndroidをPCにつなぐと
第14回 Androidの記憶領域
第13回 Google Nowを使ってみる
第12回 AndroidのUSBホスト機能
第11回 デュアルSIMを使ってみる
第10回 キーボード一体縦型Androidマシン
第9回 Androidの言語設定
第8回 アンドロイドに道を聞く
第7回 Google Playはどうやってアプリの公開を制御しているのか?
第6回 「Acer A100」がICSになった
第5回 つながっているのはACアダプタ、それともUSB端子
第4回 スマートフォンを普通の電話としてつかってみた
第3回 Androidからの通知を表示可能な腕時計
第2回 アームを誤解してませんか?
第1回 MWCで見たAndroid

もっと見る

人気記事

一覧

新着記事

「製品」から「体験」へ - ドイツのEVベンチャーが見据えるPLMの進化
[14:21 8/29] テクノロジー
日立ソ、SharePoint Online向けセキュリティ製品 - 情報を自動で暗号化
[14:12 8/29] 企業IT
Zebra、Android/iOS対応RFIDリーダーの国内提供を開始
[14:07 8/29] テクノロジー
【特別企画】"中古車選び"で悩むこととは? - 中古車情報サイト「グーネット」
[14:06 8/29] ホビー
「アイアンナイト」の屋宜知宏新作、電気文明が発展した世界舞台の戦記もの
[13:36 8/29] ホビー