Androidアプリの開発をしよう05 センサー①

加速度センサを使う

実機があると便利です

目次

  1. センサについて
  2. 加速度センサ
  3. 加速度センサを利用したプログラム
  4. プログラムの解説
  5. さいごに

センサについて

Android端末には各種センサが搭載されています。
センサから得たデータを取得たアプリの作成雨をすることが出来ます。
端末が置かれた環境からデータの取得をすれば、アプリん幅が広がっていきます。

加速度センサ

まずはじめに加速度を検知するアプリを利用してみましょう。
実際にセンサを扱うので、実機があったほうが便利ですが、エミュレータでも動作確認は可能です。
このアプリには画像が必要です。皆さんで準備いただくか、画像の時に使ったドロイド君を利用してください。
エミュレータでのテスト方法は後述します。

加速度センサを利用したプログラム

では、早速加速度センサを利用した以下のプログラムを実行してください。

実行例は以下のようになります。
この状態で端末を動かすと、ドロイド君が濃く(透明度が下がる)なります。
またエミュレータにおいても、設定画面にあるこのバーを動かすことによって、擬似的に加速度を得ることが可能です。

プログラムの解説

センサを扱うには、まずセンサを管理するセンサマネージャ(SensorManager)を取得します。
このため、アクティビティのgetSystemService()メソッドで指定したセンサオブジェクトを取得できます。
実際にセンサを利用するにはセンサ変更イベントを検知して処理するリスナを定義します。
このリスナはSensorEventListenerインターフェースを実装するものとします。
アクティビティのonResume()メソッド内でのリスナ登録をonPause()メソッド内のリスナで解除をします。
解除をしないとバッテリの消耗が激しくなるので注意が必要です。
なお、登録を行う際にはセンサの検知速度を指定する必要があります。
検知速度が早くなるほどバッテリの消耗が激しくなります。
リスナ内ではセンサから得た3方向に関する値が一定値(3)を超えた場合のみ画像が濃くなるように設定しています。
それ以外では、薄くなる設定にしています。

センサの検知速度

    種類 速度
    SENSOR_DELAY_FAST 早い
    SENSOR_DELAY_GAME ゲームに適する
    SENSOR_DELAY_UI ユーザーインターフェースに好適
    SENSOR_DELAY_NORMAL 通常

さいごに

先程書いたようにエミュレータでも動作確認は出来ますが、実感が少ないため実機でのテストをおすすめします。
またこれから様々なセンサを使ったアプリをテストしていきたいと思います。

このサイトをフォローする!