Android SensorEventListener

通过SensorEventListener可以实现对传感器的监听,但是在监听之前,需要注册监听事件:

mSensorManager.registerListener(this,
                mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                SensorManager.SENSOR_DELAY_FASTEST);

 

 具体的监听代码在下面方法中实现:

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) { 

    }

    @Override
    public void onSensorChanged(SensorEvent event) {

        if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) { 
        	
            if(Math.abs(event.values[2]) > 70.0f) {
                orientation.setText("横屏");
            } else if(Math.abs(event.values[1]) > 70.0f && Math.abs(event.values[1]) < 120) {
                orientation.setText("竖屏");
            } else if((Math.abs(event.values[2]) < 20.0f && Math.abs(event.values[1]) < 20.0f)
            		|| (Math.abs(event.values[2]) < 20.0f && Math.abs(event.values[1]) > 160.0f)) {
                orientation.setText("水平");
            } else{
                orientation.setText("");
            }

         }
        
    }

 

在不需要时,记得注销注册的服务哦:

mSensorManager.unregisterListener(this);

 

多说一句:看到这段代码,勾起了以往的一些回忆!雁过留名,人过留声!

 

 

 

你可能感兴趣的:(android)