如何在Android模拟器上模拟计步器?

时间:2019-09-10 04:58:01

标签: android android-studio android-emulator android-sensors

我正在使用TYPE_STEP_COUNTER来计算我的应用中的步骤。问题是没有一个仿真器支持此传感器仿真。在开发过程中,我找不到其他任何应用来模拟计步器。我是否总是需要在真实设备上进行测试? 这是我正在使用的代码库(在模拟器中,它总是说“未找到传感器”)

public class MainActivity extends AppCompatActivity implements SensorEventListener {

  public String TAG = "StepCount";
  SensorManager sensorManager;
  TextView tvSteps;
  boolean running=false;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tvSteps=(TextView)findViewById(R.id.textView);
    sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
  }


  @Override
  protected void onResume() {
    super.onResume();
    Log.d(TAG,  "onResume");
    running=true;
    Sensor counterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
    if(counterSensor != null){
        sensorManager.registerListener(this, counterSensor, SensorManager.SENSOR_DELAY_UI);
    } else {
        Log.d(TAG,"no sensor found");
    }
  }


  @Override
  protected void onPause() {
    super.onPause();
  }


  @Override
  public void onSensorChanged(SensorEvent event) {
    Log.d(TAG,  "onSensorChanged");
    if(running) {
        tvSteps.setText(String.valueOf(event.values[0]));
    }
  }

  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
    if(running) {
        Log.d(TAG,  "on accuracy changed");
    }
  }

  public void onStepCount(View view) {
    Log.d(TAG, "onStepCount");
    running=true;
  }

}

0 个答案:

没有答案