我需要在不手动播放传感器数据的情况下检测 android 设备方向的变化,同时保持活动方向坚持某个方向
onConfigurationChange
将无法正常工作,因为我的活动不会旋转。
使用传感器数据来检测方向变化我认为这是轮子的发明,因为 android 已经嵌入了算法的实现来检测设备方向变化。而从另一方面来说,方向变化的检测并不是像这样简单的检查。
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
return;
}
//getResources().getConfiguration().orientation;
if (event.values[1] < 6.5 && event.values[1] > -6.5) {
if (orientation!=1) {
Log.d("Sensor", "Protrait");
}
orientation=1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Landscape");
}
orientation=0;
}
}
它确实需要真正的数据处理,例如过滤噪音和突然的短暂摇晃/旋转。
那么有什么想法可以使用旧服务检测设备方向吗?(再一次,我会坚持我的活动以某种方向,所以onConfigurationChange
不会工作)