版权声明:曾经的Blog文章合并。原创作品,谢绝转载。否则将追究法律责任。

SensorManager类:用于创建sensor service的实例。该类提供了非常多

用于訪问和枚举传感器,注冊和注销传感器监听器的方法。

并且还提供了

与传感器精度、扫描频率、校正有关的常量。

Sensor类:提供了一些用于获取传感器技术參数的方法。如版本号、类型、

生产商等。

1. TYPE_ACCELEROMETER:加速传感器(硬件传感器)

2. TYPE_AMBIENT_TEMPERATURE:温度传感器(硬件传感器)

3. TYPE_GRAVITY:重力传感器(硬件或软件传感器)

4. TYPE_GYROSCOPE:陀螺仪传感器(硬件传感器)

5. TYPE_LIGHT:光线传感器(硬件传感器)

6. TYPE_LINEAR_ACCELERATION:线性加速传感器(硬件或软件传感器)

7. TYPE_MAGNETIC_FIELD:磁场传感器(硬件传感器)

8. TYPE_ORIENTATION:方向传感器(软件传感器)。数据来自重力和磁场传感器

9. TYPE_PRESSURE:压力传感器(硬件传感器)

10.TYPE_PROXIMITY:临近传感器(硬件传感器)

11.TYPE_RELATIVE_HUMIDITY:湿度传感器(硬件传感器)

12.TYPE_ROTATION_VECTOR:旋转向量传感器(硬件或软件传感器)

SensorEvent类:系统使用该类创建传感器事件对象。该对象能够提供与

传感器事件有关的信息。传感器事件对象包含的信息有原始的传感器回传

数据、传感器类型、数据的精度以及触发事件的时间。

SensorEventListener接口:该接口包括两个回调方法,当传感器的回传

值或精度发生变化时,系统会调用这两个回调方法。

<span style="font-size:12px;">//获取传感器列表
SensorManager mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
List<Sensor> mSensors=mSensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : mSensors) {
mSensorTv.append(sensor.getName()+"\n");
}</span>
<span style="font-size:12px;">/**
* @author linwb
*/
public class MainActivity extends Activity implements SensorEventListener{
private TextView mSensorTv;
private SensorManager mSensorManager;
private float[] adjustArgs=new float[3]; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mSensorTv=(TextView) findViewById(R.id.sensorTv);
mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
} @Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
} @Override
protected void onResume() {
super.onResume();
//第三个參数为刷新的频率
//SensorManager.SENSOR_DELAY_FASTEST 最快
//SensorManager.SENSOR_DELAY_GAME 游戏
//SensorManager.SENSOR_DELAY_NORMAL 普通
//SensorManager.SENSOR_DELAY_UI 用户界面
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY),
SensorManager.SENSOR_DELAY_UI);
} @Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
//去除杂质 在此之前先保证重力传感器存在
// float x=adjustArgs[0] * 0.9f + event.values[0] *( 1 - 0.9f);
// float y=adjustArgs[1] * 0.9f + event.values[1] *( 1 - 0.9f);
// float z=adjustArgs[2] * 0.9f + event.values[2] *( 1 - 0.9f); String reslut=(event.values[0])+" "+(event.values[1])
+" "+(event.values[2]-9.81f);
mSensorTv.setText(reslut);
break;
case Sensor.TYPE_GRAVITY:
adjustArgs[0]=event.values[0];
adjustArgs[1]=event.values[1];
adjustArgs[2]=event.values[2];
break;
default:
break;
}
} @Override
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
}</span>

版权声明:本文博主原创文章,博客,未经同意不得转载。

最新文章

  1. BZOJ 2086: [Poi2010]Blocks
  2. js for循环中i++ 和 ++i有什么区别?
  3. Invalid layout param in a LinarLayout: layout_weight
  4. 20145208 GDB调试汇编堆栈过程分析
  5. iOS - Share 分享/第三方登录
  6. LINQ的All的方法
  7. PHP学习笔记:伪静态规则的书写
  8. WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
  9. js让iframe高度自动
  10. C#创建、读取和修改Excel
  11. CentOS 6.4 中安装部署 Nutch 1.7
  12. rman进行备份、恢复
  13. MYSQL触发器的NEW和OLD的一个小问题
  14. perl 公交车查询
  15. [ACM] POJ 3259 Wormholes (bellman-ford最短路径,推断是否存在负权回路)
  16. WPF绘制党徽(立体效果,Cool)
  17. gulp快速入门&amp;初体验
  18. 【Android Developers Training】 69. 视图切换的淡入淡出效果
  19. ACM 畅通工程2
  20. Dynamics CRM 查找字段下拉的最多10个选项的排序规则

热门文章

  1. [Android阅读代码]圆形旋转菜单CircleMenu
  2. uva-211-The Domino Effect
  3. OCP读书笔记(10) - 使用闪回技术I
  4. HDU 4704 Sum (费马定理+快速幂)
  5. Storm构建分布式实时处理应用初探(转)
  6. 23、Cocos2dx 3.0游戏开发找小三之粒子系统:你那里下雪了吗?
  7. python手记(52)
  8. hdu 5187 高速幂高速乘法
  9. 世纪互联、微软Azure与无穷小微积分
  10. C++ Primer笔记10_运算符重载_赋值运算符_进入/输出操作符