如果在Android设备中自动旋转选项处于关闭状态-如何检查用户是否选择将设备锁定为纵向或横向模式?
当用户更改设置时,我不能依靠设备的实际方向-在某些设备(通常是电话)中,只有人像锁,即使设备在横向时也可以打开
我使用这段代码,但是只有在启用或禁用自动旋转时它才返回,而不是实际的锁定方向。
这是针对在Unity中开发的应用程序,因此会赞赏Unity或Android本机建议。
谢谢!
private static bool DeviceAutoRotationIsOn()
{
using (var actClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
var context = actClass.GetStatic<AndroidJavaObject>("currentActivity");
var systemGlobal = new AndroidJavaClass("android.provider.Settings$System");
var rotationOn = systemGlobal.CallStatic<int>("getInt",
context.Call<AndroidJavaObject>("getContentResolver"), "accelerometer_rotation");
return rotationOn == 1;
}
}
答案 0 :(得分:0)
如果您的应用需要特定的方向(例如仅纵向或横向),则可以使用android:screenOrientation在清单文件上进行设置。
答案 1 :(得分:0)
要获取当前方向:
科特琳
val display = (baseContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
val rotation = display.rotation
Java
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();
结果可能是:
Surface.ROTATION_0
Surface.ROTATION_90
Surface.ROTATION_180
Surface.ROTATION_270
90和270(横向)
0和180(纵向)