Android实现计步器功能
作者:淼森007 发布时间:2023-12-24 14:06:21
标签:Android,计步器
本文实例为大家分享了Android实现计步器功能的具体代码,供大家参考,具体内容如下
计步器的原理是通过手机的前后摆动模拟步伐节奏检测。我们本身在手机的传感器中就有计步器的传感器,所以这里我们直接上代码。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_step"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="设备检测到您当前走了0步,总计数为0步"
android:textColor="@color/black"
android:textSize="17sp" />
</LinearLayout>
MainActivity.java
public class MainActivity extends BaseActivity
implements SensorEventListener {
private TextView tv_step;
private SensorManager mSensorMgr;// 声明一个传感管理器对象
private int mStep;
private int mStepCount;
@Override
protected MvcBaseModel getModelImp() {
return null;
}
@Override
protected int getContentLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initWidget() {
tv_step = findViewById(R.id.tv_step);
// 从系统服务中获取传感管理器对象
mSensorMgr = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onPause() {
super.onPause();
// 注销当前活动的传感 *
mSensorMgr.unregisterListener(this);
}
@Override
protected void onResume() {
super.onResume();
//注册步行检测
mSensorMgr.registerListener(this,
mSensorMgr.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),
SensorManager.SENSOR_DELAY_NORMAL);
//注册步行计数
mSensorMgr.registerListener(this,
mSensorMgr.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR){//步行检测事件
if (event.values[0] == 1.0f){
mStep++;
}
}else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER){//计步器事件
mStepCount = (int) event.values[0];
}
String desc = String.format("设备检测到您当前走了%d步,总计数为%d步",mStep,mStepCount);
tv_step.setText(desc);
}
//当传感器精度改变时回调该方法,一般无需处理
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
}
这样我们就实现了计步器的功能。
来源:https://blog.csdn.net/weixin_38322371/article/details/115323717


猜你喜欢
- 效果展示人脸支付效果视频密码框输入支付效果视频因为密码支付时会调起系统安全键盘,开启自动保护功能,防止泄露,会导致输入密码时录屏黑屏,故使用
- 一、类成员的访问级别public:可由任何代码访问。private(默认):只能由类中的代码访问。internal:只能由它所在的项目(程序
- 将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看随便创建一个包,在包中新建一个class文件,(也可以不建包,直接
- 一、相关概念1.1 Jenkins概念:Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费
- 这篇文章主要介绍了springboot2.0如何通过fastdfs实现文件分布式上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 一、前端搭建1、前端用到js:uploadify(下载地址:http://www.uploadify.com/download/)、laye
- 本文是Spring Security系列中的一篇。在上一篇文章中,我们通过实现UserDetailsService和UserDetails接
- 实例如下:import java.lang.reflect.Field;import java.lang.reflect.Invocatio
- 本文实例讲述了Android控件Tween动画(补间动画)实现方法。分享给大家供大家参考,具体如下:Android动画中的Tween动画:是
- 下面Demo中我使用了2种排序方式1.让Employee继承IComparable 接口,实现CompareTo方法排序2.定义一个方法使用
- Java画图 给图片底部添加文字标题需求给图片底部添加文字编号import java.awt.Color;import java.awt.F
- 1. java 位掩码java 位掩码,在java开发中很少有场景会用到掩码,但是当系统中需要判断某个对象是否有 某些权限时,可以通过位掩码
- 大家先看下效果图:Android为我们提供了四种应组件,分别为Activity、Service、Broadcast receivers和Co
- 主要目的是按后退键的时候,让程序能够退出。 实现起来的思路: 1.捕获到后退键事件就触发。@Override public bo
- 软件工程由于需要不断迭代开发,因此要对源代码进行版本管理。Android源代码工程(AOSP)也不例外,它采用Git来进行版本管理。AOSP
- 这篇文章主要介绍了Spring整合Dubbo框架过程及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 传统的多分支方式(圈复杂度为6):public String order(String type) { if ("1&
- 前言最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录。供大家学习参考。Synchronized修饰非静态方法Syn
- 写在前面Linux:CentOS7.5Spark: spark-3.0.0-bin-hadoop3.2IDE:IntelliJ IDEA20
- 最近在做学校的课程设计,java编程需要用到对话框弹出,第一反应是js中的alert和confirm,java的话瞬间懵,查阅学习总结如下,