android AOSP Automotive on Pixel 3 XL,更改默认屏幕方向

7eumitmz  于 2023-01-24  发布在  Android
关注(0)|答案(1)|浏览(203)

我刚刚建立和闪存AOSP汽车在谷歌像素3 XL使用本手册:https://source.android.com/devices/automotive/start/pixelxl
它工作正常,但默认情况下以纵向模式启动。对于我的自定义启动器,我需要有它在横向虽然。
我尝试在core/res/res/values/config.xml中更改以下设置

-    <bool name="config_allowAllRotations">false</bool>
+    <bool name="config_allowAllRotations">true</bool>

-    <integer name="config_carDockRotation">-1</integer>
+    <integer name="config_carDockRotation">2</integer>

但它没有采取任何效果后,重新 Flink 系统。img
我还尝试在init.rc中应用以下属性,但没有任何效果

# screen rotation attempt
setprop ro.sf.hwrotation 0
setprop config.override_forced_orient flase

我在Android 10上,构建QQ3A.200705.002.
任何提示都将不胜感激。。谢谢!

fae0ux8s

fae0ux8s1#

got merged修复到AOSP master。不再需要修补源代码,只需同步你的仓库。然后,将def_user_rotation设置为frameworks/base/packages/SettingsProvider/res/values/defaults.xml,如下所述,它应该工作。

上一个答案

frameworks/base/packages/SettingsProvider/res/values/defaults.xml中有一对默认方向的配置设置:

  • def_accelerometer_rotation-确定来自其他线程的accelerometer_rotation的默认值(默认情况下设置为false,所以应该没问题)
  • def_user_rotation-应确定user_rotation的默认值(因此您可以将其设置为值1-4)

问题是...后者似乎不受支持!AOSP的好处是它是开源的,你可以修复它(确切地说,修复DatabaseHelper.java)。下面是我为你准备的一个补丁(适用于framages/base):

--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -846,8 +846,8 @@ class DatabaseHelper extends SQLiteOpenHelper {
             try {
                 stmt = db.compileStatement("INSERT INTO system(name,value)"
                         + " VALUES(?,?);");
-                loadBooleanSetting(stmt, Settings.System.USER_ROTATION,
-                        R.integer.def_user_rotation); // should be zero degrees
+                loadIntegerSetting(stmt, Settings.System.USER_ROTATION,
+                        R.integer.def_user_rotation);
                 db.setTransactionSuccessful();
             } finally {
                 db.endTransaction();
@@ -2265,6 +2265,8 @@ class DatabaseHelper extends SQLiteOpenHelper {
             loadBooleanSetting(stmt, Settings.System.ACCELEROMETER_ROTATION,
                     R.bool.def_accelerometer_rotation);
 
+            loadIntegerSetting(stmt, Settings.System.USER_ROTATION, R.integer.def_user_rotation);
+
             loadDefaultHapticSettings(stmt);
 
             loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE,

构建并刷新修补的系统映像(使用上述修补程序和defaults.xml更改)后,您可以验证设置是否正确初始化:

  • adb shell settings get system user_rotation(不应为null
  • adb shell settings get system accelerometer_rotation(应为0

请让我知道它是否对你的设备有帮助--对我的设备有帮助。你可能还需要将config.override_forced_orient设置为**true**,但对我的Pixel 3a没有必要。

相关问题