どのくらいの精度なのかを試してみました。
SensorManager manager = (SensorManager)getSystemService(SENSOR_SERVICE);
Sensor s = manager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
manager.registerListener(this, s, SensorManager.SENSOR_DELAY_FASTEST);
Sensorインスタンスの情報から、
AK8976Aなる温度センサとわかる。
温度だけでなく、他のセンサ機能もついてるのか。
リンク先に写真があるけど、あんなにちっちゃいんだなあ..
上記ソースをonCreate()に書いて、SensorEventListener実装して
onSensorChanged()内でSensorEventのフィールドfloat[] valuesを参照する。
あ、values[0]に32.0と言う数字が入っている..
どうもこれが温度らしい、32ってことは摂氏か。
しかし..32度って..室内で私が熱くないって事は室温25度くらいなんですけど..
うーん本体内部温度かな..
しんばらくデータが取れないなと数分待つと
突然SensorEventがばらばらっと連続して動き出して、
またすぐにぱたっと動かなくなって..
が繰り返される。
イベント発生時精度変更も呼ばれるのだけど、
Accuracy(精度)毎回3.0なんですけど..
この動きは、AK8976A自体もしくはその周りのハード
の特性なんだろうか..
組み込み系は、とんとうといから、これ以上はわからない。
ので、今の特性を受け入れて使わないとなあ..
使おうとするなら、
最初に起動したときの温度から何度上昇したらなにか実行するとかくらい。
室温が急激に上がってきたら
音楽ならすとか?
..うーん、いらないなあ..
..Xperiaで無くなるわけだ..
0 件のコメント:
コメントを投稿