这个问题涉及3D几何和对Android传感器的深刻理解。我花了数周时间寻找解决方案但没有成功,并希望得到社区的帮助。
是否可以从Android中的服务获取当前设备方向(纵向或横向)?我不需要从传感器不断更新;只是当前的设备方向。即使启动器是纵向(因为用户已将自动旋转设置为关闭),设备方向也应在横向保持时正确报告。
示例/示例代码将受到高度赞赏。
感谢。
答案 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 {
//
}