ここから紹介する温度、湿度、気圧、照度データは、毎日計測してそれをグラフにするだけで、面白いアプリになるような気がします。特に、現在ITや製造業の進出が進んでいる農業におけるIoT活用などで注目を浴びそうです(参考:業務アプリはもうこれ以上、進化できないのか? ―― スマートアグリカルチャーに学ぼう)。
温度センサーは、Android 4.0から登場した「TYPE_AMBIENT_TEMPERATURE」と、Android 1.5からある「TYPE_TEMPERATURE」の2つがあります。TYPE_TEMPERATUREはTYPE_AMBIENT_TEMPERATUREが登場してから非推奨となったセンサータイプで、既に詳細な説明はなくなってしまっていますが、私は以下のように推測しています。
もともと、TYPE_TEMPERATUREという名前でセンサータイプが定義されていました。これは「温度タイプ」と訳すことができますが、この温度が端末の温度を指すのか気温を指すのかが曖昧であり、ある端末ベンダーは端末の温度を、別のある端末ベンダーは気温をセンシングしていたのではないかと思います。
そうした状況を重く見たグーグルは、TYPE_TEMPERATUREという曖昧な名称タイプを非推奨とし、代わりにTYPE_AMBIENT_TEMPERATUREという、「外気温タイプ」と訳す新しいセンサータイプを追加して、曖昧さをなくしたのではないかと思います。
本連載第13回「iPhoneより多彩なAndroidのセンサをアプリで操作」で取り上げた温度センサーの解説を引用します。
当時Android Dev Phone 1で検証した際に、室温18℃の環境でイベントとして通知されてくる値は30〜34であったことから、Android Dev Phone 1では外気温ではなく端末温度を検出していた可能性があります(ドキュメントも不整備で通知されてくる値の意味がよく分からなかったため、氷点下の屋外に端末を放置したのは今となっては良い思い出です)。
温度センサーはSensorEvent#values[0]に温度が摂氏(℃)で渡されてきます。当時と違い、ドキュメントにしっかりと記載されています。
湿度センサーはAndroid 4.0から追加された新しいセンサーです。
使用方法は難しくなく、SensorEvent#values[0]に湿度が単位パーセントで通知されてくるので、その値を使用するだけです。
Androidのドキュメントには、湿度と温度と気圧は密接に関係していると数式を用いて説明されており、それぞれのセンサーが補完し合っているように読み取れます。実際、手元の端末でも温度センサーの搭載されてない端末では湿度センサーも搭載されていませんでした。
気圧センサーは古くから定義されていたセンサーで、多くの端末でも実装されているセンサーの一つだと思います。気圧センサーの使い道は大きく二つあります。
記事「気圧計がAndroidの新しい切り札だと思う理由」によると、一つはクラウドソースの気象ネットワークを形成するため、もう一つはナビゲーションの精度を上げるために気圧センサーを利用することです。
前者は位置情報を気圧データの補助として利用し、後者は気圧データを位置情報の補助として利用するアイデアです。
照度センサーは明るさを検出するセンサーで、スクリーン照度を自動調整することで、省電力に寄与するためのセンサーです。暗い環境では照度を下げて電力消費量を抑え、明るい環境では照度を上げて画面を見やすくします。
太陽光下だと32000luxほど、屋内蛍光灯下だと400luxほど、屋内豆電球だと5luxほどです。これだけ違えば、環境に応じた実装はしやすいですね。
3つのデバイスを用いて同一環境(屋内蛍光灯下)で計測したところ、以下のような違いがありました。
端末 | 照度 |
---|---|
Galaxy Nexus | 260lux前後 |
Galaxy S4 | 350lux前後 |
Nexus 5 | 130lux前後 |
実装されているセンサーによってこれだけ違うのですね。
最後に、今回確認したGalaxy Nexus、Galaxy S4、Nexus 5のセンサーデバイスの実装状況を以下に示します。
画面解像度の都合で、ステップカウンターとステップ検出器が切れてしまっていますが、ご容赦ください。各項目の下段にセンサーデバイスの詳細を表示しています。Qualcomm、Invensense、AKMなどはなるほどと思いますが、意外な企業(グーグルやヤマハ)などもセンサーデバイスを端末に供給していることが分かり、なかなか興味深いです。
今回はステップカウンターとステップ検出器を中心に、マイナーなセンサーも一通り取り上げて解説しました。
次回は、Android Wearの正式版と同じく本日(米国時間6月25日)開催された「Google I/O 2014」の基調講演で発表された新しいAndroidプラットフォーム「Android L」開発者プレビューの新機能を開発者向けにまとめて紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.