http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_STEP_COUNTER
Initialize Sensor
SensorManagerを使い、Sensorオブジェクトを取得します。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class StepCounterActivity extends Activity { private SensorManager mSensorManager; private Sensor mStepSensor; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.text_step); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); mStepSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); } protected void onResume() { super .onResume(); mSensorManager.registerListener(mSensorEventListener, mStepSensor, SensorManager.SENSOR_DELAY_NORMAL); } protected void onPause() { super .onPause(); mSensorManager.unregisterListener(mSensorEventListener); } |
Create a SensorListener
歩数はonSensorChangedのコールバックメソッドで取得します。値はevent.values[0]に格納されています。
端末機起動後から計測した歩数の値を返します。0に戻るときは端末再起動時だけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private SensorEventListener mSensorEventListener = new SensorEventListener() { private float mStepOffset; @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { if (mStepOffset == 0 ) { mStepOffset = event.values[ 0 ]; } mTextView.setText(Float.toString(event.values[ 0 ] - mStepOffset)); } }; |
0 件のコメント:
コメントを投稿