2012-09-18 11 views
9

desarrollo una aplicación para el cálculo de las calorías quemadas al caminar para eso utilizo SensorEventListener (ACCELEROMETER) obtengo tres valores de ese X, Y, Z. mi pregunta es cómo calcular el paso del pie usando ese tres X, Y, Z. este es mi código para obtener el valor X, Y, Z. yo uso GPS también pero requirió el paso del recuento usando el podómetro en Android guyzz PLZ ayúdame.Cómo calcular Foot step usando el podómetro

package com.mxicoders.prashant; 

import android.app.ActivityGroup; 
import android.content.Intent; 
import android.hardware.Sensor; 
import android.hardware.SensorEvent; 
import android.hardware.SensorEventListener; 
import android.hardware.SensorManager; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Chronometer; 
import android.widget.ImageButton; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MyWorkout extends ActivityGroup implements SensorEventListener { 

    ImageButton btnfacebook, btnstartwalk, btnstopwalk; 
    Chronometer mchoronometer; 
    Intent getintent; 
    String _getname, _getage, _gethight, _getwidth; 
    TextView txtx, txty, txtz; 
    private SensorManager sensorManager; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_workout); 

     txtx = (TextView) findViewById(R.id.txtview_steps_myworkout); 
     txty = (TextView) findViewById(R.id.txtview_distance_myworkout); 
     txtz = (TextView) findViewById(R.id.txtview_calary_myworkout); 
     btnfacebook = (ImageButton) findViewById(R.id.imgview_facebook_myworkout); 

     btnfacebook.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent inn = new Intent(getParent(), MyworkoutFacbook.class); 
       WorkoutTabGroupActivity parantActivity = (WorkoutTabGroupActivity) getParent(); 
       parantActivity.startChildActivity("MyworkoutFacbook", inn); 

      } 
     }); 
     btnstartwalk = (ImageButton) findViewById(R.id.imgbtn_start_myworkout); 
     btnstartwalk.setOnClickListener(new OnClickListener() { 

      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 

       sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 

       sensorManager.registerListener(MyWorkout.this, sensorManager 
         .getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
         SensorManager.SENSOR_DELAY_NORMAL); 
       Toast.makeText(getApplicationContext(), "Start", 
         Toast.LENGTH_LONG).show(); 


      } 
     }); 

     btnstopwalk = (ImageButton) findViewById(R.id.imgbtn_stop_myworkout); 
     btnstopwalk.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 


      } 
     }); 

    } 

    public void onAccuracyChanged(Sensor sensor, int accuracy) { 
     // TODO Auto-generated method stub 

    } 

    public void onSensorChanged(SensorEvent event) { 
     // TODO Auto-generated method stub 
     if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
      float x = event.values[0]; 
      float y = event.values[1]; 
      float z = event.values[2]; 
      txtx.setText("X: " + x); 
      txty.setText("X: " + y); 
      txtz.setText("X: " + z); 
     } 

    } 
} 

Respuesta

4

Mi sugerencia es que se debe realizar un seguimiento de las variaciones en el eje Z global (el cuerpo hacia arriba movimiento/abajo). No puede garantizar que el usuario mantenga el móvil en una orientación específica, por lo que tendrá que confiar en la experimentación. Además, es posible que deba controlar la velocidad de movimiento (para no traducir el movimiento del automóvil a pasos de peatones, por ejemplo).

Lo que yo haría es:

1- Crear un archivo de texto en el móvil y registrar los valores de X, Y & Z (además de la velocidad GPS), mientras que estoy caminando, con el móvil en diferentes orientaciones (en mi bolsillo, en una bolsa de cinturón, ... etc.). Además, lleve un registro de la cantidad de pasos que realicé.

2- Basándose en estos datos en el paso uno, formule una fórmula para convertir estos datos en número de pasos de pie.

+0

Mohamed_AbdAllah no entiendo lo que dices. Solo quiero el cálculo de caminar de cualquier otra manera posible sin usar SensorEventListener. tienes alguna idea sobre eso. – Prashant09

+0

Lo que estoy diciendo es que necesita experimentar para traducir los cambios del Sensor a los pasos de los alimentos registrando y analizando su registro. Puedes hacerlo con los cambios de GPS (convierte la distancia recorrida a pasos de pie dividiéndolo por una distancia de paso promedio de 15 cm) –

+0

Mohamed_AbdAllah bien, pero tengo acceso pero puedes darme cualquier código o demo para eso ... – Prashant09

Cuestiones relacionadas