Android计步器开发

您所在的位置:网站首页 华为自带的计步器怎么用 Android计步器开发

Android计步器开发

2024-07-09 15:01| 来源: 网络整理| 查看: 265

本文只赘述Android计步器开发里计步的原理。 在Android4.4版本之后,新增了STEP_COUNTER和STEP_DECTECTOR STEP_COUNTER表示自从开机以来,你走的步数累计; STEP_DECTECTOR表示你单次有效的步数。 理解了这两个含义就很容易开发这个最原始和最简单的计步器了。

先在AndroidManifest.xml中添加权限:

 

这两个权限是硬件的支持。

activity_main_xml中的代码:

MainActivity中的代码:

import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { private SensorManager mSensorManager; public float mDetector; public float mCounter; private static final int sensorTypeD = Sensor.TYPE_STEP_DETECTOR; private static final int sensorTypeC = Sensor.TYPE_STEP_COUNTER; private Sensor stepCounter; private Sensor stepDetector; private TextView tv01, tv02; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 找到控件 tv01 = (TextView) findViewById(R.id.tv01); tv02 = (TextView) findViewById(R.id.tv02); //获取SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); // 获取我们需要的传感器类型 Sensor stepCounter = mSensorManager.getDefaultSensor(sensorTypeC); Sensor stepDetector = mSensorManager.getDefaultSensor(sensorTypeD); // 注册监听器 mSensorManager.registerListener(sensorEventListener, stepCounter,SensorManager.SENSOR_DELAY_FASTEST); mSensorManager.registerListener(sensorEventListener, stepDetector,SensorManager.SENSOR_DELAY_FASTEST); } SensorEventListener sensorEventListener=new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == sensorTypeC) { mCounter = event.values[0]; tv01.setText(mCounter + "步"); } if (event.sensor.getType() == sensorTypeD) { if (event.values[0] == 1.0) { mDetector++; tv02.setText(mDetector + "步"); } } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3