Android AOSP锁定屏幕旋转

时间:2020-10-08 15:12:48

标签: android android-source landscape lockscreen

我正在构建在Android(9)上运行的设备,该设备通常以横向模式与显示器一起使用。我已经找到了一种方法来将主屏幕设置为横向,以及将设备随附的自定义应用程序修复为横向,但是我还没有找到一种方法来针对锁定屏幕(也称为Keyguard)。这有可能吗?

注意:我确实有完整的AOSP源代码可用于编辑和构建,我只是不知道在哪里进行所需的更改。 frameworks / base / packages / Keyguard的AndroidManifest.xml令人惊讶地为空。

1 个答案:

答案 0 :(得分:0)

为此,您必须在设备的make文件和软件包中进行一些更改。 首先:将其添加到您的主设备制作文件中,然后删除android.hardware.screen.portrait.xml包。

PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.screen.landscape.xml:system/etc/permissions/android.hardware.screen.landscape.xml \

第二个:创建覆盖config.xml文件。它应位于目标目录的覆盖目录中(设备/ {您的设备供应商} / {您的设备模型} / overlay / framework / base / res / res / values)。然后添加此配置 文件(config.xml)

<resources>
    <bool name="config_forceDefaultOrientation">true</bool>
</resources>

注意:这种方式适用于android 9和所有较旧的版本,还有另一种方式适用于android 10及更早版本。

注意:请确保在您的make文件中定义了覆盖目录路径,以便系统使用您的覆盖。

PRODUCT_PACKAGE_OVERLAYS += device/{vendor-of-you-device}/{model-of-your-device}/overlay

注意:您必须在目标路径(设备/ {您的设备的供应商} / {您的设备的型号} /覆盖)中提供框架覆盖,以更改显示方向或任何其他框架属性并且不更改android内部框架配置,因为它不安全或不建议这样做。