Android1.0でのセンサーの使い方
バージョン1.0の場合
- 作者: Ed Burnette,日本Androidの会(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/05/18
- メディア: 大型本
- 購入: 15人 クリック: 304回
- この商品を含むブログ (55件) を見る
はじめてのAndroidを参考にセンサーの使い方を調べています。
以下のblog記事によると、Android1.0/1.1とAndroid1.5でAPIが異なるそうです。
センサー(Sensor)を使用するには - 逆引きAndroid入門
今回は、はじめてのAndroidで紹介している1.0の方で。すでにバージョン2.0が公開されているご時世ですが、、、、^^;
サンプルは以下のURLから取得できます。
http://www.oreilly.co.jp/books/9784873114095/
package org.example.sensortest;
import android.app.Activity;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;public class SensorTest extends Activity implements SensorListener {
private SensorManager mgr;
private TextView output;@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// ...
mgr = (SensorManager) getSystemService(SENSOR_SERVICE);
output = (TextView) findViewById(R.id.output);
}
@Override
protected void onResume() {
super.onResume();
int sensors = SensorManager.SENSOR_ALL;
mgr.registerListener(this, sensors);
}@Override
protected void onPause() {
super.onPause();
}
public void onAccuracyChanged(int sensor, int accuracy) {
// TODO Auto-generated method stub
}
public void onSensorChanged(int sensor, float[] values) {
StringBuilder builder = new StringBuilder();
builder.append("Sensor number: ");
builder.append(sensor);
builder.append("\nValues:\n");
for (int i = 0; i < values.length; i++) {
// ...
builder.append("[");
builder.append(values[i]);
builder.append("] = ");
builder.append("\n");
}
output.setText(builder);
}
}
このサンプルで利用されているSensorListenerインタフェースは、バージョン1.5以上では非推奨になっています。
このサンプルを見る限りでは、別タスクで動いているSensorManagerから指定したリスナに対して、センサーの値を送ってもらう形式になっているようです。
SensorManagerの動き自体は、1.5でも変わらないんじゃないかと予想しています。
中の動作については後日調査したいと思います。
バージョン1.5では
以下のblog記事が参考になりそう。
http://www.adakoda.com/adakoda/2009/04/android-redesigned-sensor-manager-apisandroid15-the-type-sensorlistener-is-deprecated.html
SensorManagerクラス
1500行くらい。読むのはそれほど大変じゃなさそう。
今週の日曜日はActivityとIntentの調査に宛てるとして、来週あたりに調査しようと思います。