如何解决Pixel 3 XL 上的 AOSP 汽车,更改默认屏幕方向
我刚刚使用本手册在 Google Pixel 3 XL 上构建并烧录了 AOSP 汽车: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>
# screen rotation attempt
setprop ro.sf.hwrotation 0
setprop config.override_forced_orient flase
我使用的是 Android 10,构建 QQ3A.200705.002。
任何提示将不胜感激..谢谢!
解决方法
修复 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,所以你应该没问题) -
def_user_rotation
- 应确定user_rotation
的默认值(因此您可以将其设置为值 1-4)
问题是……似乎不支持后者!好的部分是 AOSP 是开源的,您可以修复它(准确地说,修复 DatabaseHelper.java
)。这是我为您准备的补丁(适用于框架/基础):
--- 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,+ 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,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 不需要这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。