安卓传感器的简单使用

本文介绍了如何在Android设备上利用加速度传感器实现一个简单的计步器功能。通过SensorManager获取传感器实例,注册SensorEventListener监听加速度变化,根据XYZ轴的加速度数据进行计步计算。文章详细讲解了相关API的使用,并提供了运行效果的展示。
摘要由CSDN通过智能技术生成

前言

这学期学习了移动软件开发课程后,自己尝试实现了个小功能,就是利用手机自带的加速传感器实现个简单的计步器。

介绍一些传感器的api

一般来说,智能机中都支持一下常见的传感器
如:温度传感器(tempreture sensor);压力传感器(pressure sensor);光传感器(light sensor);加速度传感器(accelerometer sensor)等等等等;
传感器有几个比较重要的API:
SensorManager(用以获取SensorManager实例,提供各种方法例如访问传感器列表,获取方位信息等等)
Sensor(用以选择传感器)
SensorEventListener(通过这个接口创建两个回调用法来接收传感器的事件通知,比如当传感器的值发生变化时)

利用加速传感器 简单实现计步器

  • 通过getSystemService来获得SensorManager实例对象
  • registerListener使用为系统的加速度传感器注册监听器,其需要传递3个参数:传感器的监听器,待监听的传感器,传感器的采样率。这里通过getDefaultSensor()方法指定我们需要的加速度传感器,通过SensorManager.SENSOR_DELAY_NORMAL直接使用正常频率的采样率,其他采样率分别为(FASTEST最快;GAME适合游戏;UI适合普通用户界面UI变化)
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
        bindViews();
    }

从registerListener()方法可以看出,它需要传递一个SensorEventListener对象,它就是传感器的监听器,其中包含两个方法,需要开发人员去实现它:

  • void onAccuracyChanged(Sensor sensor,int accuracy):当传感器精度发生变化时回调。
  • void onSensorChanged(SensorEvent event):当传感器感应的值发生变化时回调。
    传感器的精度一般不会发生改变,所以主要关注传感器感应的值发生变化,也就是在onSensorChanged上

重写监听器的onSensorChanged()方法,其中event获取当当前监听事件的参数,根据官方文档:
values [0]:x轴上的加速度减去Gx
values [1]:y轴上的加速度减去Gy
values [2]:z轴上的加速度减去Gz
在这里插入图片描述
在这里插入图片描述
从上面两张图片可以发现 value数组的三个值其实就分别对应X,Y,Z轴上的加速度!

public void onSensorChanged(SensorEvent event) {
   
        
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值