Forlinx の組み込み i.MX8MP プラットフォームで Android の縦画面表示を実現する方法

Forlinx Embedded i.MX8MP プラットフォームの Android インターフェイスのデフォルトの表示方向は横長ですが、一部の製品では縦長表示が必要な場合があります。この要件に対処するために、Forlinx Embedded は次の変更メソッドを提供します。

www.forlinx.net

Forlinx の組み込み i.MX8MP プラットフォームで Android の縦画面表示を実現する方法

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 で公開されています。

www.forlinx.net