茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルプログラミング@つくば

Androidのセンサー「TYPE_STEP_COUNTER」で歩数計を作るテスト

投稿日:2016年8月30日 更新日:

こんばんは、okuzawatsです。

Androidは、万歩計のように歩数を取得できるのを知っているでしょうか。
Android標準のセンサーに、歩数が取得できるものがあるのです。
まあ、端末によってはついていないものもあるようなんですが...。

歩数が簡単に取得できるのなら...歩数計を使ったゲームとか、面白そうじゃないですか。
ということで...。

Androidのセンサー「TYPE_STEP_COUNTER」を使って歩数を取得するサンプルを作ってみました。

ソースはGitHubに置いてあるので、興味がある方はご覧ください。
中身の説明はこの記事の下の方でしています。
ちなみに言語はJavaです。

okuzawats/android-pedometer-sample: TYPE_STEP_COUNTERを使ったアプリのサンプルです。

Androidの「TYPE_STEP_COUNTER」

TYPE_STEP_COUNTERは、センサーにアクセスした時から端末のシャットダウンまで、歩数を計測してくれます。
float値ですが、小数点以下は全て0です。
何故、int値でないのかは不明です。

A constant describing a step counter sensor.

A sensor of this type returns the number of steps taken by the user since the last reboot while activated.

出典:Sensor | Android Developers

TYPE_STEP_COUNTERは、Android 4.4で導入されました。
Android 4.4以降を搭載している一部の端末で使えるようです。
私のVaio Phone(VA-10J)は使えました。

TYPE_STEP_COUNTERのサンプル

まずはTYPE_STEP_COUNTERに対応しているか確認します。
KitKat(Android 4.4)以上、かつ端末がTYPE_STEP_COUNTERに対応していれば、trueになります。

あとは、

  • getSystemService(SENSOR_SERVICE)でSensorManagerを取得
  • SensorManager#getDefaultSensor(Sensor.TYPE_STEP_COUNTER)でTYPE_STEP_COUNTERを取得
  • Sensorのリスナーを登録
  • リスナーから取得した値をTextViewに表示

という感じです。

まずはレイアウト用のxmlの方でTYPE_STEP_COUNTERの値を表示させたいTextViewのidを"pedometer"にしておいて、こんな感じで実装していきます。

TYPE_STEP_COUNTERに対応している実機で確認すれば、なかなかの精度で歩数を計測してくれるアプリができるんじゃないかと思います。

プロジェクト全体はGitHubに置いてあります。
お気に入りに登録、フォロー、プルリクエストなど、よろしくお願いいたします。

okuzawats/android-pedometer-sample: TYPE_STEP_COUNTERを使ったアプリのサンプルです。

-Android

Copyright© モバイルプログラミング@つくば , 2017 AllRights Reserved Powered by AFFINGER4.