android之各类传感器使用详解

原文发表在论坛上:,去粗取精,整理一下,作字典来使用!

android各类传感器使用详解

1. 传感器入门1.1方向传感器1.2加速传感器1.3重力传感器1.4光线传感器1.5陀螺仪传感器1.6其他传感器2. 测试手机中有哪些传感器3传感器应用3.1电子罗盘3.2计步器4、 手机翻转静音

1、传感器入门HTC Dream、HTC Magic、HTC Heropackage android.hardware;public interface SensorEventListener {public void onSensorChanged(SensorEvent event);public void onAccuracyChanged(Sensor sensor, int accuracy);}

X轴的方向是沿着屏幕的水平方向从左向右。如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置。Y轴的方向是从屏幕的左下角开始沿着屏幕的垂直方向指向屏幕的顶端。

1.1方向传感器1.2加速传感器// 获得传感器管理器SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);// 注册方向传感器sm.registerListener(this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_FASTEST);SensorManager.SENSOR_DELAY_ FASTESTSensorManager.SENSOR_DELAY_NORMAL:默认的获得传感器数据的速度。SensorManager.SENSOR_DELAY_GAME:如果利用传感器开发游戏,建议使用该值。1.3重力感应器Android SDKpublic static final float GRAVITY_SUN= 275.0f;public static final float GRAVITY_MERCURY= 3.70f;public static final float GRAVITY_VENUS= 8.87f;public static final float GRAVITY_EARTH= 9.80665f;public static final float GRAVITY_MOON= 1.6f;public static final float GRAVITY_MARS= 3.71f;public static final float GRAVITY_JUPITER= 23.12f;public static final float GRAVITY_SATURN= 8.96f;public static final float GRAVITY_URANUS= 8.69f;public static final float GRAVITY_NEPTUNE= 11.0f;public static final float GRAVITY_PLUTO= 0.6f;public static final float GRAVITY_DEATH_STAR_I= 0.000000353036145f;public static final float GRAVITY_THE_ISLAND= 4.815162342f;1.4光线传感器Android SDK将光线强度分为不同的等级,每一个等级的最大值由一个常量表示,这些常量都定义在SensorManager类中,代码如下:public static final float LIGHT_SUNLIGHT_MAX =120000.0f;public static final float LIGHT_SUNLIGHT=110000.0f;public static final float LIGHT_SHADE=20000.0f;public static final float LIGHT_OVERCAST= 10000.0f;public static final float LIGHT_SUNRISE= 400.0f;public static final float LIGHT_CLOUDY= 100.0f;public static final float LIGHT_FULLMOON= 0.25f;public static final float LIGHT_NO_MOON= 0.001f;

1.5陀螺仪传感器陀陀螺仪传感器的类型常量是Sensor.TYPE_GYROSCOPE。values数组的三个元素表示的含义如下:values[0]:延X轴旋转的角速度。values[1]:延Y轴旋转的角速度。values[2]:延Z轴旋转的角速度。当手机逆时针旋转时,角速度为正值,顺时针旋转时,角速度为负值。陀螺仪传感器经常被用来计算手机已转动的角度,代码如下:

private static final float NS2S = 1.0f / 1000000000.0f;private float timestamp;public void onSensorChanged(SensorEvent event){if (timestamp != 0){// event.timesamp表示当前的时间,单位是纳秒(1百万分之一毫秒)final float dT = (event.timestamp – timestamp) * NS2S;angle[0] += event.values[0] * dT;angle[1] += event.values[1] * dT;angle[2] += event.values[2] * dT;}timestamp = event.timestamp;}

1.6其他传感器其他传感器在前面几节介绍了加速度传感器、重力传感器、光线传感器、陀螺仪传感器以及方向传感器。除了这些传感器外,Android SDK还支持如下的几种传感器。关于这些传感器的使用方法以及与这些传感器相关的常量、方法,读者可以参阅官方文档。Google Nexus SHTC G7

任何业绩的质变都来自于量变的积累。

android之各类传感器使用详解

相关文章:

你感兴趣的文章:

标签云: