Forlinx Embedded i.MX8MP プラットフォームの Android インターフェイスのデフォルトの表示方向は横長ですが、一部の製品では縦長表示が必要な場合があります。この要件に対処するために、Forlinx Embedded は次の変更メソッドを提供します。
Android システムは、persist.vendor.orientation プロパティを通じて画面の向きを制御します。このプロパティには、0、90、180、または 270 の値を指定できます。
設定パス: Frameworks/native/services/su**ceflinger/Su**ceFlinger.cpp
processDisplayHotplugEventsLocked で変更します。
Su**ceFlinger::processDisplayHotplugEventsLocked() {
continue;
}
+ /* Rotate desktop */
+ char rotationvalue[PROPERTY_VALUE_MAX] = "";;
+ property_get("persist.vendor.orientation", rotationvalue, "-1");
+ int rotation = atoi(rotationvalue);
+ ALOGI("Primary Display Orientation is set to rotation %2d.", rotation);
+ switch (rotation) {
+ case 0:
+ internalDisplayOrientation = ui::ROTATION_0;
+ break;
+ case 90:
+ internalDisplayOrientation = ui::ROTATION_90;
+ break;
+ case 180:
+ internalDisplayOrientation = ui::ROTATION_180;
+ break;
+ case 270:
+ internalDisplayOrientation = ui::ROTATION_270;
+ break;
+ default:
+ break;
+ }
+ const DisplayId displayId = info->id;
const auto it = mPhysicalDisplayTokens.find(displayId);
変更後は、関連する設定を環境変数に追加する必要があります。
パス: device/nxp/imx8m/evk_8mp/system.prop
persist.sys.timezone=Asia/Shanghai persist.sys.language=zh persist.sys.country=CN +persist.vendor.orientation=90
ここを90度回転すると90と書き、180度回転すると180、270度回転すると270となります。
プロパティの値の設定に失敗した場合は、次のようにします。
device/nxp/imx8m/sepolicy/property_contextsに以下を追加します。
+persist.vendor.orientation u:object_r:debug_prop:s0 vendor.wc_transport. u:object_r:vendor_wc_prop:s0 persist.vendor.usb.config u:object_r:vendor_usb_config_prop:s0 vendor.usb.config u:object_r:vendor_usb_config_prop:s0
元は www.forlinx.net で公開されています。