手机中陀螺仪芯片选型(专题陀螺仪传感器)
Android所有的传感器都归传感器管理器 SensorManager 管理,获取传感器管理器的方法很简单:
String service_name = Context.SENSOR_SERVICE;
SensorManager sensorManager =(SensorManager)getSystemService(service_name);
现阶段Android支持的传感器有8种,它们分别是:
传感器类型常量内部整数值中文名称
Sensor.TYPE_ACCELEROMETER1加速度传感器
Sensor.TYPE_MAGNETIC_FIELD2磁力传感器
Sensor.TYPE_ORIENTATION3方向传感器
Sensor.TYPE_GYROSCOPE4陀螺仪传感器
Sensor.TYPE_LIGHT5环境光照传感器
Sensor.TYPE_PRESSURE6压力传感器
Sensor.TYPE_TEMPERATURE7温度传感器
Sensor.TYPE_PROXIMITY8距离传感器
从传感器管理器中获取其中某个或者某些传感器的方法有如下三种:
第一种:获取某种传感器的默认传感器
Sensor defaultGyroscope =sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
第二种:获取某种传感器的列表
List<Sensor> pressureSensors =sensorManager.getSensorList(Sensor.TYPE_PRESSURE);
第三种:获取所有传感器的列表,我们这个例子就用的第三种
List<Sensor> allSensors =sensorManager.getSensorList(Sensor.TYPE_ALL);
对于某一个传感器,它的一些具体信息的获取方法可以见下表:
方法 描述
getMaximumRange 最大取值范围
getName 设备名称
getPower 功率
getResolution 精度
getType 传感器类型
getVentor 设备供应商
getVersion 设备版本号
例子:加速度传感器获取晃动信息来控制录音
// 获取传感器管理器
SensorManager sm =(SensorManager) getSystemService(Context.SENSOR_SERVICE);
// 获取加速度传感器
Sensor acceleromererSensor =sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
// 定义传感器事件监听器
SensorEventListeneracceleromererListener = new SensorEventListener {
@Override
public voidonAccuracyChanged(Sensor sensor, int accuracy) {
//响应传感器精确度变化
}
//传感器数据变动事件
@Override
public voidonSensorChanged(SensorEvent event) {
}
};
//在传感器管理器中注册监听器
sm.registerListener(acceleromererListener, acceleromererSensor,SensorManager.SENSOR_DELAY_NORMAL);
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com