Android:从服务获取当前的设备方向

时间:2014-04-14 06:34:56

标签: android orientation screen-orientation android-orientation device-orientation

这个问题涉及3D几何和对Android传感器的深刻理解。我花了数周时间寻找解决方案但没有成功,并希望得到社区的帮助。

是否可以从Android中的服务获取当前设备方向(纵向或横向)?我不需要从传感器不断更新;只是当前的设备方向。即使启动器是纵向(因为用户已将自动旋转设置为关闭),设备方向也应在横向保持时正确报告。

示例/示例代码将受到高度赞赏。

感谢。

2 个答案:

答案 0 :(得分:2)

是的,你可以

WindowManager windowService = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int currentRatation = windowService.getDefaultDisplay().getRotation();

if (Surface.ROTATION_0 == currentRatation) {
   currentRatation = PORT;
} else if(Surface.ROTATION_180 == currentRatation) {
   currentRatation = PORT;
} else if(Surface.ROTATION_90 == currentRatation) {
   currentRatation = LAND;
} else if(Surface.ROTATION_270 == currentRatation) {
   currentRatation = LAND;
}

答案 1 :(得分:1)

您可以通过以下方式查看正在使用的资源

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//
} else {
//
}