首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AOSP Automotive on Pixel 3 XL,更改默认屏幕方向

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

Stack Overflow用户
提问于 2021-01-15 22:08:32
回答 1查看 312关注 0票数 1

我刚刚使用以下手册在Google Pixel3XL上构建并刷新了AOSP Automotive:https://source.android.com/devices/automotive/start/pixelxl

它工作得很好,但默认情况下会以纵向模式启动。对于我的自定义启动器,我需要将它放在风景中。

我尝试更改core/res/res/values/config.xml中的以下设置

代码语言:javascript
复制
-    <bool name="config_allowAllRotations">false</bool>
+    <bool name="config_allowAllRotations">true</bool>

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

但在重新刷新system.img后没有任何效果

我还尝试在init.rc中应用以下属性,但没有任何效果

代码语言:javascript
复制
# screen rotation attempt
setprop ro.sf.hwrotation 0
setprop config.override_forced_orient flase

我在Android10上,构建QQ3A.200705.002。

如有任何提示,我们将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 03:35:17

修复got merged到AOSP主程序中。不再需要修补源代码,只需同步您的存储库即可。然后,将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,因此您应为fine)
  • def_user_rotation -应确定user_rotation的默认值(因此您可以将其设置为值1-4)

问题是。后者似乎不受支持!好的方面是AOSP是开源的,你可以修复它(准确地说,修复DatabaseHelper.java)。这是我为你准备的补丁(应用于框架/基础):

代码语言:javascript
复制
--- 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,,但这对于我的Pixel3a来说并不是必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65737549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档