やりたかったこと。
AndroidのSensorを使って磁力を取得するプログラムをつくったのですが、取得するタイミングをもっと遅くしたいなぁと思いました。たとえば、1秒ごととか5秒ごととか。
調べてみると、registerListener()の引数で、任意の値を設定できる。ことがわかったんだけど、
自分の端末(Androidバージョン2.3.5)では動作しませんでした。
Androidのデベロッパーサイトをみると、2.3 (API level 9) から使えることになってるので、
動いてもよさそう、、、だけど効かない。
ためしに、別の端末(Androidバージョン4.4.2)で、試したところ、設定通りに動作しました。
2.3.5ではあきらめることに。
調べて分かったことを記録しておきます。
わかったこと(1)
Androidのデベロッパーサイトを見ると、Android2.3から、registerListenerの引数に、μ秒を指定できるという記載がある。サイトのリンク
わかったこと(2)
定義済みのSENSOR_DELAY_*の値は、SensorManager.javaで実装されている。- private static int getDelay(int rate) {
- int delay = -1;
- switch (rate) {
- case SENSOR_DELAY_FASTEST:
- delay = 0;
- break;
- case SENSOR_DELAY_GAME:
- delay = 20000;
- break;
- case SENSOR_DELAY_UI:
- delay = 66667;
- break;
- case SENSOR_DELAY_NORMAL:
- delay = 200000;
- break;
- default:
- delay = rate;
- break;
- }
- return delay;
- }
0 件のコメント:
コメントを投稿