9

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

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

1 に答える 1

4

私の提案は、グローバル Z 軸 (体の上下の動き) の変動を追跡することです。ユーザーがモバイルを特定の向きで保持するとは限らないため、実験に頼る必要があります。また、移動速度を監視する必要がある場合もあります (たとえば、車の移動を足のステップに変換しないようにするため)。

私がすることは次のとおりです。

1-モバイルでテキストファイルを作成し、モバイルをさまざまな方向(ポケットの中、ベルトポーチの中など)で歩いているときに、X、Y、Zの値(GPS速度に加えて)を記録します...等)。また、実行したステップ数を追跡します。

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

于 2012-09-18T13:21:29.160 に答える