Android 获取加速传感器的值,并去除杂音

1、注册和注销传感器

  private void registerSensor() {
        manager.registerListener(this,
                manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_NORMAL);

        manager.registerListener(this,
                manager.getDefaultSensor(Sensor.TYPE_GRAVITY),
                SensorManager.SENSOR_DELAY_NORMAL);

    }

    private void unregisterSensor() {
        manager.unregisterListener(this);
    }

2、执行注册和注销

   @Override
    protected void onResume() {
        super.onResume();

        registerSensor();
    }

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

        unregisterSensor();
    }

3、实现SensorEventListener,获取加速传感器的值,并去除杂音

   @Override
    public void onSensorChanged(SensorEvent event) {
        switch (event.sensor.getType()) {
        case Sensor.TYPE_ACCELEROMETER:
            float[] values = event.values;
            gravityValues[0] = gravityValues[0] * alpha + (1 - alpha) * values[0];
            gravityValues[1] = gravityValues[1] * alpha + (1 - alpha) * values[1];
            gravityValues[2] = gravityValues[2] * alpha + (1 - alpha) * values[2];

            String strAccelerometer = String.format(Locale.CHINA,
                    ">>>>>>>>Accelerometer X:%f, Y:%f, Z:%f", event.values[0] - gravityValues[0],
                    event.values[1] - gravityValues[1], event.values[2] - gravityValues[2]);
            System.out.println(strAccelerometer);
            break;

        case Sensor.TYPE_GRAVITY:
            gravityValues[0] = event.values[0];
            gravityValues[1] = event.values[1];
            gravityValues[2] = event.values[2];
            break;

        default:
            break;
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }
时间: 2024-10-08 04:48:49

Android 获取加速传感器的值,并去除杂音的相关文章

Android获取文件的MD5值

package my.bag; import java.io.File; import java.io.FileInputStream; import java.math.BigInteger; import java.security.MessageDigest; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.os.Bundle; import androi

Android 获取开发&测试 SHA1值

以前都是直接安装一个开发者助手获取的,但是呢,开发者助手也有bug啊,应用宝下载安装,在我的红米手机上发现打不开,于是我又去酷安网下载了一个,可以打开了,但是有问题,没法获取到完整的root权限,检测不准确,当前应用根本看不到东西,于是只能另想办法了,老套路就是百度,然后照着搞,发现很多都是直接 keytool 命令,但是我这里报 'keytool' 不是内部或外部命令 也不是可运行的程序,这个不是什么大问题,网上很多解决方案,但是本人比较懒,太麻烦的操作一般懒得做,但是又没办法,所以搜集了一下

android获取string.xml的值

转自 http://blog.sina.com.cn/s/blog_618199e601011bst.html 为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出英文.这样做国际化非常的方便. 二:为了减少应用的体积

android获取string.xml的值(转)

为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出英文.这样做国际化非常的方便. 二:为了减少应用的体积,降低数据的冗余.假设在应用中要使用"我们一直在努力"这段文字1000次,如果在每次使用时直接写上这几

android获取当前日期及具体值

final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); mYear = String.valueOf(c.get(Calendar.YEAR)); // 获取当前年份 mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份 mDay = String.valueOf(c.get(Calendar

Android 获取屏幕宽高值

时间:2016年3月7日16:14:52 note:单位为像素. 三个方法中都是根据Display来进行测量. //方法一: WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); System.out

Android的加速度传感器模拟摇一摇的效果-android学习之旅(66)

主要介绍一下android的加速传感器的简单用法,模拟摇一摇 ,如果x,y,z三个方向的加速度超过了15,就会弹出Toast,当然你可以设置更复杂的策略,比如判断间隔 代码如下 public class MainActivity extends Activity { private SensorManager sensorManager; private TextView textView; @Override protected void onCreate(Bundle savedInstan

android获取传感器列表

本文介绍如何获取android设备所支持的传感器列表. 目前,android 4.4 (API等级19)支持以下传感器: TYPE_ACCELEROMETER 加速度传感器,单位是m/s2,测量应用于设备X.Y.Z轴上的加速度 传感器类型值(Sensor Type):1 (0x00000001) TYPE_AMBIENT_TEMPERATURE 温度传感器,单位是℃ 传感器类型值(Sensor Type): 13 (0x0000000d) TYPE_GAME_ROTATION_VECTOR 游戏

Android之使用传感器获取相应数据

Android的大部分手机中都有传感器,传感器类型有方向.加速度(重力).光线.磁场.距离(临近性).温度等. 方向传感器:   Sensor.TYPE_ORIENTATION 加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER 光线传感器:    Sensor.TYPE_LIGHT 磁场传感器:   Sensor.TYPE_MAGNETIC_FIELD 距离(临近性)传感器: Sensor.TYPE_PROXIMITY 温度传感器:   Sensor.TYPE_TEMP