Step Detector and Step Counter Sensors on Android
Step Detector and Step Counter Sensors on Android
Android KitKat has added a few more hardware sensors to it's API list. Step Sensors are one of them, which looks very promising. Although, not a lot of phones yet have these Step Sensors, in the future, this would gradually become a standard I think. Currently, Nexus 5 has them.
Let's see how we can interact with these sensors. Basically, there are 2 sensors.
- Step Counter: This keeps a count of the number of steps that you have taken. The counter is only reset when you re-boot the device, else, for every step you take (or the phone thinks you took, you counts up).
- Step Detector: This sensor just detects when you take a step. That's it.
The example project shows you how to initialize and setup the SensorManager and respond to events from the Sensors.
    
      
        
          // Step Counter          
          sManager.registerListener(new SensorEventListener() {          
          @Override          
          public void onSensorChanged(SensorEvent event) {          
          float steps = event.values[0];          
          textViewStepCounter.setText((int) steps + "");          
          }          
          @Override          
          public void onAccuracyChanged(Sensor sensor, int accuracy) {          
          }          
          }, sManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),          
          SensorManager.SENSOR_DELAY_UI);        
      
    
  
    
      
        
          // Step Detector          
          sManager.registerListener(new SensorEventListener() {          
          @Override          
          public void onSensorChanged(SensorEvent event) {          
          // Time is in nanoseconds, convert to millis          
          timestamp = event.timestamp / 1000000;          
          }          
          @Override          
          public void onAccuracyChanged(Sensor sensor, int accuracy) {          
          }          
          }, sManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),          
          SensorManager.SENSOR_DELAY_UI);         
      
    
  
 
      No special permissions are required.
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号