zoukankan      html  css  js  c++  java
  • 动作传感器的组成及使用方法

     1 //动作传感器:加速度传感器,重力传感器:
     2 public class MainActivity extends Activity implements SensorEventListener {
     3     private TextView tvAcceleromter;
     4     private SensorManager sManager;
     5     private float[] gravity = new float[3];
     6 
     7     @Override
     8     protected void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.fragment_main);
    11         tvAcceleromter = (TextView) findViewById(R.id.tv);
    12         sManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    13 
    14     }
    15 
    16     // 传感器数据变化
    17     @Override
    18     public void onSensorChanged(SensorEvent event) {
    19         // TODO Auto-generated method stub
    20         switch (event.sensor.getType()) {
    21         // 加速度 9.81m/s^2
    22         case Sensor.TYPE_ACCELEROMETER:
    23             final float alpha = (float) 0.8;// 系数
    24             gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
    25             gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
    26             gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
    27             // String accelerometer = "加速度:" + "X轴:" + event.values[0] + "Y轴:"
    28             // + event.values[1] + "Z轴:" + (event.values[2] - 9.81);
    29             // 去掉杂音
    30             String accelerometer = "加速度:" + "X轴:"
    31                     + (event.values[0] - gravity[0]) + "Y轴:"
    32                     + (event.values[1] - gravity[1]) + "Z轴:"
    33                     + (event.values[2] - gravity[2]);
    34             Log.i("--->>", String.valueOf(event.values[2] - gravity[2]));
    35 
    36             // event.values[0]; X轴
    37             // event.values[1]; Y轴
    38             // event.values[2]; Z轴
    39 
    40             tvAcceleromter.setText(accelerometer);
    41             break;
    42         // 重力
    43         case Sensor.TYPE_GRAVITY:
    44             gravity[0] = event.values[0];
    45             gravity[1] = event.values[1];
    46             gravity[2] = event.values[2];
    47             break;
    48 
    49         default:
    50             break;
    51         }
    52     }
    53 
    54     // 传感器精度变化
    55     @Override
    56     public void onAccuracyChanged(Sensor sensor, int accuracy) {
    57         // TODO Auto-generated method stub
    58 
    59     }
    60 
    61     @Override
    62     protected void onResume() {
    63         // TODO Auto-generated method stub
    64         super.onResume();
    65         // 注册传感器
    66         // 加速度
    67         sManager.registerListener(this,
    68                 sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
    69                 SensorManager.SENSOR_DELAY_NORMAL);
    70         // 重力
    71         sManager.registerListener(this,
    72                 sManager.getDefaultSensor(Sensor.TYPE_GRAVITY),
    73                 SensorManager.SENSOR_DELAY_FASTEST);
    74 
    75     }
    76 
    77     @Override
    78     protected void onPause() {
    79         // TODO Auto-generated method stub
    80         super.onPause();
    81         // 不在截获传感器数据
    82         sManager.unregisterListener(this);
    83 
    84     }
    85 
    86 }
  • 相关阅读:
    java框架篇---Struts2 本地化/国际化(i18n)
    java框架篇---struts之文件上传和下载
    Apache Spark 2.2中基于成本的优化器(CBO)(转载)
    Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创翻译)
    Spark技术在京东智能供应链预测的应用
    《图解Spark:核心技术与案例实战》作者经验谈
    Storm介绍及与Spark Streaming对比
    Netty介绍
    附录E 安装Kafka
    附录D 安装ZooKeeper
  • 原文地址:https://www.cnblogs.com/my334420/p/6905632.html
Copyright © 2011-2022 走看看