Androidでスリープ状態で歩数計センサー(TYPE_STEP_DETECTOR)の使用について
Androidでサービスを作成して、その中で歩数計センサー(TYPE_STEP_DETECTOR)を使用して歩数をカウントしています。
アプリを起動しているときは問題なくカウントされるのですが、スリープ状態(画面が真っ暗の状態)のときにカウントが極端に少ない場合がありました。
スリープ状態だと必ずカウントが少ないというわけではないのですが、再現パターンがいまいちわかりません。
カウントがされない原因がわからないのですが、スリープ状態だと歩数計センサーが作動しなくなるとかあるのでしょうか?
アドバイスをよろしくお願い致します。
public final class PedometerService extends Service implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mSensor;
private HandlerThread mSensorThread;
@Override
public void onCreate() {
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
mSensorThread = new HandlerThread("PedometerServiceThread");
mSensorThread.start();
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_FASTEST,
new Handler(mSensorThread.getLooper()));
}
@Override
public void onDestroy() {
mSensorThread.getLooper().quit();
mSensorManager.unregisterListener(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onSensorChanged(SensorEvent event) {
int value = (int)event.values[0];
//歩行を検知したときの処理
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
}