2012-09-18 12 views
9

私はそれを歩くことによってカロリーを計算するためのアプリケーションを開発します。SensorEventListener (ACCELEROMETER)私はそのX、Y、Zから3つの値を取得します。 私の質問は、その3つのX、Y、Zを使用して足のステップを計算する方法です。 これはX、Y、Z値を取得するためのコードです。私もGPSを使用しています。しかし私はAndroidの歩数計を使用してカウントステップが必要 guyzz PLZ助けてください。歩数計を使用して足の歩数を計算する

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); 
     } 

    } 
} 

答えて

4

グローバルZ軸(身体の上下運動)のバリエーションを追跡することをお勧めします。あなたは、ユーザーが特定の方向に携帯を保持することを保証することはできませんので、実験に頼らざるを得ません。また、移動速度を監視する必要がある場合もあります(たとえば、車の動きを足踏みに変換しないなど)。私はどうなるのか

は次のとおりです。私は別で、モバイルで、歩いていながら

1-(GPS速度に加えて)Y & Z、モバイル上のテキストファイルを作成し、Xの値を記録します向き(私のポケットの中、ベルトポーチ、...など)。また、実行したステップの数を記録しておきます。

2-ステップ1のこのデータに基づいて、このデータを歩数ステップ数に変換する式を作成します。

+0

Mohamed_AbdAllah私はあなたの言うことを得ていません。私はちょうどSensorEventListenerを使用せずにそれ以外の方法で歩行の計算をしたい。あなたはそれについて考えています。 – Prashant09

+0

私が言っていることは、あなたのログを記録し分析することで、センサの変化を食物のステップに変換するために実験する必要があるということです。あなたはGPSの変更でそれを行うことができます(歩いた距離を足のステップに換算して平均歩幅15cmとする) –

+0

Mohamed_AbdAllah私は持っていますが、そのコードやデモを教えてください... – Prashant09

関連する問題