表題の通り。
Sensorのリスナーでよくあるサンプルコードのようにループで登録しなかったらハマった。
//お手本 final List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); for(Sensor sensor:sensors){ if(sensor.getType()==Sensor.TYPE_MAGNETIC_FIELD){ //同じタイプのセンサーが複数あるので理にかなった実装 mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_UI); } //他のセンサーも登録できる。 //else if(sensor.getType(ry }
「2種類のセンサーが有効だったらセンサーリスナー登録する」っていうコードを書こうと思ったら、最後のセンサーに対してのみregisterListenerしててハマった。
磁気センサーとかは固まるやつは、デバイス振ったら動き出すので注意。これもハマった。
あとSensorのtoString()はオーバーライドしてあって便利。デバッグログにそのまま使える。
全部の地雷を踏みぬいていくスタイル。