Android记步(运动)应用

本文介绍如何使用Android内置传感器TYPE_STEP_COUNTER和TYPE_STEP_DETECTOR开发运动记步应用,包括添加权限、注册绑定、监听传感器获取步数及解除绑定等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android记步(运动)应用

现如今随着人们对身体健康的追求,人们开始争先恐后的运动,而本文就是利用Android技术,编写一个运动记步数的应用(如有转载,请表明作者)。

在这里插入图片描述
在这里插入图片描述
一、使用Android内置传感器 TYPE_STEP_COUNTER 和 TYPE_STEP_DETECTOR
TYPE_STEP_COUNTER 记录开机以来的总步数,适合用于开发计步器。
TYPE_STEP_DETECTOR 检测到用户走了一步就向SensorEventListener传递一个浮点值1.0
1、添加相应权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.BODY_SENSORS" />

2、进行注册绑定

mSensorManager.registerListener(mListener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),
                SensorManager.SENSOR_DELAY_NORMAL);
        mSensorManager.registerListener(mListener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),
                SensorManager.SENSOR_DELAY_NORMAL);

3、监听传感器并获取步数

class MySensorEventListener implements SensorEventListener {
        @Override
        public void onSensorChanged(SensorEvent event) {
            if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
                if (event.values[0] == 1.0f) {
                    mStepDetector++;
                }
            } else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
                mStepCounter = (int) event.values[0];
            }
            String desc = String.format("设备检测到您当前走了%d步,自开机以来总数为%d步", mStepDetector, mStepCounter);
            walkSum.setText(""+mStepDetector);
            mStepSum=mStepDetector*0.5/1000.0;
            distance.setText(""+mStepSum);
        }
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }
    }

4、最后一定要解除绑定,不解除很耗电

mSensorManager.unregisterListener(mListener);

以上就是运用Android自带的传感器编写的运动记步应用,旨在大家参考。
如有问题欢迎纠错!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值