android计步器显示错误的步数

oyjwcjzk  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(219)

我用java创建了一个简单的android步进计数器。我有步骤计数器工作,但由于某种原因,当我启动应用程序时,它开始在62000步。我没有硬编码这个值在我的代码中的任何地方,我不知道为什么会显示。下面我提供了一个屏幕截图和一段代码。有什么想法吗?
ui的外观

  1. public class Pedometer extends AppCompatActivity implements SensorEventListener {
  2. private SensorManager sensorManager;
  3. private TextView count;
  4. private boolean running;
  5. private Button reset;
  6. private CircularProgressBar circularProgressBar;
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_pedometer);
  11. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  12. count = findViewById(R.id.stepTextView);
  13. reset = findViewById(R.id.resetSteps);
  14. circularProgressBar = findViewById(R.id.circularBar);
  15. sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
  16. reset.setOnClickListener(new View.OnClickListener() {
  17. @Override
  18. public void onClick(View v) {
  19. count.setText("0");
  20. }
  21. });
  22. }
  23. @Override
  24. protected void onResume() {
  25. super.onResume();
  26. running = true;
  27. Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
  28. if(countSensor != null) {
  29. sensorManager.registerListener(Pedometer.this,countSensor,SensorManager.SENSOR_DELAY_UI);
  30. } else {
  31. Toast.makeText(Pedometer.this,"Sensor not found.",Toast.LENGTH_SHORT).show();
  32. }
  33. }
  34. @Override
  35. protected void onPause() {
  36. super.onPause();
  37. running = false;
  38. }
  39. @Override
  40. protected void onStop() {
  41. super.onStop();
  42. running = false;
  43. }
  44. @Override
  45. public void onSensorChanged(SensorEvent event) {
  46. if(running) {
  47. int currentSteps = (int) event.values[0];
  48. count.setText(String.valueOf(currentSteps));
  49. circularProgressBar.setProgressWithAnimation(currentSteps);
  50. }
  51. }
  52. @Override
  53. public void onAccuracyChanged(Sensor sensor, int accuracy) {
  54. }
  55. }
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:background="@drawable/background"
  8. android:padding="@dimen/box_inset_layout_padding"
  9. tools:context=".Pedometer"
  10. tools:deviceIds="wear">
  11. <com.mikhaellopez.circularprogressbar.CircularProgressBar
  12. android:id="@+id/circularBar"
  13. android:layout_width="200dp"
  14. android:layout_height="200dp"
  15. app:cpb_background_progressbar_color="#FF0000"
  16. app:cpb_round_border="true"
  17. app:layout_constraintBottom_toBottomOf="parent"
  18. app:layout_constraintEnd_toEndOf="parent"
  19. app:layout_constraintHorizontal_bias="0.497"
  20. app:layout_constraintStart_toStartOf="parent"
  21. app:layout_constraintTop_toTopOf="parent"
  22. app:layout_constraintVertical_bias="0.499" />
  23. <TextView
  24. android:id="@+id/stepTextView"
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:layout_marginTop="60dp"
  28. app:layout_constraintEnd_toEndOf="parent"
  29. app:layout_constraintHorizontal_bias="0.498"
  30. app:layout_constraintStart_toStartOf="parent"
  31. app:layout_constraintTop_toBottomOf="@+id/circularBar" />
  32. <Button
  33. android:id="@+id/resetSteps"
  34. android:layout_width="wrap_content"
  35. android:layout_height="wrap_content"
  36. android:layout_marginTop="44dp"
  37. android:text="Reset Counter"
  38. app:layout_constraintEnd_toEndOf="parent"
  39. app:layout_constraintHorizontal_bias="0.498"
  40. app:layout_constraintStart_toStartOf="parent"
  41. app:layout_constraintTop_toBottomOf="@+id/stepTextView" />
  42. </androidx.constraintlayout.widget.ConstraintLayout>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题