SCREEN_ORIENTATION_USER 和 SCREEN_ORIENTATION_SENSOR 之间的区别

Difference between SCREEN_ORIENTATION_USER and SCREEN_ORIENTATION_SENSOR

在开发 Android 应用程序时,我发现了两个用于设置屏幕方向的 ActivityInfo 属性。

有USER的属性如下:

  1. SCREEN_ORIENTATION_USER
  2. SCREEN_ORIENTATION_USER_风景
  3. SCREEN_ORIENTATION_USER_肖像

具有SENSOR的属性如下:

  1. SCREEN_ORIENTATION_SENSOR
  2. SCREEN_ORIENTATION_SENSOR_风景
  3. SCREEN_ORIENTATION_SENSOR_肖像

SCREEN_ORIENTATION_USER和SCREEN_ORIENTATION_SENSOR有什么区别?

From source

The attributes having USER are as follows.

SCREEN_ORIENTATION_USER

使用用户当前首选的听筒方向。对应于SCREEN_ORIENTATION_USER.

SCREEN_ORIENTATION_USER_LANDSCAPE

想要横向显示屏幕,但如果用户启用了基于传感器的旋转,那么我们可以使用传感器更改屏幕朝向的方向。对应于 SCREEN_ORIENTATION_USER_LANDSCAPE.

SCREEN_ORIENTATION_USER_PORTRAIT

想要纵向显示屏幕,但如果用户启用了基于传感器的旋转,那么我们可以使用传感器更改屏幕朝向的方向。对应于 SCREEN_ORIENTATION_USER_PORTRAIT.

The attributes having SENSOR are as follows.

SCREEN_ORIENTATION_SENSOR

方向由物理方向传感器确定:显示屏将根据用户移动设备的方式旋转。忽略用户设置以关闭基于传感器的旋转。对应于SCREEN_ORIENTATION_SENSOR.

SCREEN_ORIENTATION_SENSOR_LANDSCAPE

想要横向显示屏幕,但可以使用传感器更改屏幕朝向的方向。对应于 SCREEN_ORIENTATION_SENSOR_LANDSCAPE.

SCREEN_ORIENTATION_SENSOR_PORTRAIT

想要纵向显示屏幕,但可以使用传感器更改屏幕朝向的方向。对应于 SCREEN_ORIENTATION_SENSOR_PORTRAIT.