从Android1.5开始,系统内置了对多达八种传感器的支持,他们分别是:加速度传感器(accelerometer)、陀螺仪(gyroscope)、环境光照传感器(light)、磁力传感器(magneticfield)、方向传感器(orientation)、压力传感器(pressure)、距离传感器(proximity)和温度传感器(temperature)。这次就来简单介绍一下基本的传感器用法
1传感器的类型获取
//获取系统传感器类型 SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); //获得传感器类型列表 //List<Sensor> sensorList = sm.getSensorList(Sensor.TYPE_ALL);
2获取指定的传感器
这里需要注意,不同的手机传感器不一定一样,有的手机(比如我的)就没有温度传感器
//获取指定某一个传感器,如下面的加速度传感器 Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
3传感器的监听,一共有三个参数
第一个参数为监听,第二个是刚才获取到的传感器对象,第三个可以认为是敏感度
监听方法里第一个用来执行相关操作
具体有这么几个可选的:
SENSOR_DELAY_FASTEST ,0微秒 最低延迟,可能造成手机电量大量消耗,不建议使用
SENSOR_DELAY_GAME ,20000微秒 一般用于游戏开发
SENSOR_DELAY_NORMAL ,2000000微秒 默认
SENSOR_DELAY_UI,60000微秒 更新UI建议使用这个
//注册传感器的监听器 sm.registerListener(new SensorEventListener() { /** * 传感器数据变化时调用 * @param sensorEvent */ @Override public void onSensorChanged(SensorEvent sensorEvent) { //获得传感器的三个坐标 float x = sensorEvent.values[0]; float y = sensorEvent.values[1]; float z = sensorEvent.values[2]; // textView.setText("x="+x+"--->y="+y+"---->z="+z); if (Math.abs(x) + Math.abs(y) + Math.abs(z) > value && flag == false) { //监听摇一摇 textView.setVisibility(View.INVISIBLE); flag = !flag; } } /** * 获取精度的变化 * @param sensor * @param i */ @Override public void onAccuracyChanged(Sensor sensor, int i) { } }, sensor, SensorManager.SENSOR_DELAY_NORMAL);
简单的使用就分享到这里,一般游戏开发和摇一摇都要用到传感器,建议大家可以深入研究