android 系统关闭系统自动旋转屏幕情况下利用设备感应器(方向传感器)实现横竖屏切换
2.SensorManager sm=(SensorManager)getSystemService(SENSOR_SERVICE);
3.在Activity的生命周期方法中注册与移除SensorEventListener;
在onResume()方法中注册sm.registerListerner(this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_FASTEST);
其中Ssensor.TYPE_ORIENTATION该常量在3.0后已被Deprecated掉了,当时我还以为在4.0里不建议用了,用其他常量代替结果未能达到效果,然后我就查看sdk中自带的demo中使用的竟然还是这个常量,这样就简单了,剩下的就是在SensorEventListener接口的实现方法中实现自己的操作就可以了;
4.在onSensorChanged(SensorEvent event) 中实现自己的操作;
alues[0]: Acceleration minus Gx on the x-axis
values[1]: Acceleration minus Gy on the y-axis
values[2]: Acceleration minus Gz on the z-axis
根据api文档中的说法在这块我只要values[2]就可实现当屏幕横竖屏时切换屏幕;
大概意思是绕Z轴正向旋转与逆向旋转两种方式,
1.正向旋转时只需要判断values[2]>40.0f&&values[2]<70.0f;
2.逆向旋转时只需要判断val