0
私はゲームのステップメーターを持つアプリケーションを持っていますので、ゲームをプレイするときにバックグラウンドでユーザーのステップを計算します。それは正常に動作し、私の問題は、次のユーザーが実際に踏み出した合計の合計 - Android Application Stepometer
- は、彼は200個のステップを持っていた1つのセッションであり、例えばゲーム
をプレイし始めているので、ユーザーが撮影したステップの総計を持っていますnext 300. このような合計500ステップを保存して、ユーザーに達成度を表示できるようにしたいと思います。試合開始から1000歩歩いたことをお祝いします。
これは私がオンラインで見つけた、私のアプリケーションで現在使用している私の歩数計のコードです。
import android.app.Activity;
import android.content.Context;
import android.hardware.*;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class StepCounterActivity extends Activity implements SensorEventListener {
private SensorManager sensorManager;
private TextView count;
boolean activityRunning;
int totalSteps;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step_counter);
count = (TextView) findViewById(R.id.count);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
activityRunning = true;
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if (countSensor != null) {
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
} else {
Toast.makeText(this, "Count sensor not available!", Toast.LENGTH_LONG).show();
}
}
@Override
protected void onPause() {
super.onPause();
activityRunning = false;
// if you unregister the last listener, the hardware will stop detecting step events
// sensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (activityRunning) {
count.setText(String.valueOf(event.values[0]));
//maybe add to a variable the number of steps somehow?
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}