我刚刚使用以下手册在Google Pixel3XL上构建并刷新了AOSP Automotive: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>但在重新刷新system.img后没有任何效果
我还尝试在init.rc中应用以下属性,但没有任何效果
# screen rotation attempt
setprop ro.sf.hwrotation 0
setprop config.override_forced_orient flase我在Android10上,构建QQ3A.200705.002。
如有任何提示,我们将不胜感激。谢谢!
发布于 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)。这是我为你准备的补丁(应用于框架/基础):
--- 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来说并不是必需的。
https://stackoverflow.com/questions/65737549
复制相似问题