HDMI Setting are grey and not useable

Hi, we have a Problem with HDMI rotation. Our customer use RockPi as Digital Signage Player with there own apk. In Android 7 and 9 this function is there if you go to settings display hdmi. He had only one board of 7 which has worked. The others are greyed out. Please help me with this issue our customer has a big project with this player.

Maybe this code can be added, seems it’s missing from Nougat, file doesn’t exist on Pie so perhaps only a Nougat solution.


then you can run
wm rotation 90 180 270 0
to rotate the screen from a terminal app


The rotation settings seem to be disabled by default here for TvSettings on Android Pie.
Perhaps it needs to be modified?

Somewhere this must also be set to true or false config_supportAutoRotation true they say in the commit notes.

I’m a bit confused as they talk about displays with sensors and displays without sensors rotation.

Do you use the ‘Settings’ app that is fullscreen, looks the same as on a phone or the TvSettings app that shows the right screen side settings with 5 menus?

Is it like a tablet screen that should rotate by itself if moved or a stationary display without sensors like a PC monitor that need a software setting to manually change the rotation?

Or the problem is the screen shows things in landscape but it must display everything only in portrait?

Maybe Radxa or someone knows a bit better?
This is a bit of a complicated thing for me.

Hi, thx for your help. We just need the manual function in the Settings.
We had one Rock Pi and one EMMC in combination were settings has worked.

IMG_3851

You can see pictures, totally strange. All other boards which we have tested are always with not working settings.

Hi

Please let them test this app
https://apkpure.com/apkpure-app.html?icn=aegon&ici=image_home

The app rotates with the screen, usually displays in landscape as on a phone.
Please check if it shows in the correct orientation landscape or portrait on the display with Android 7 and 9 firmware.

Then also test this app and customers app on my firmware here


I put it to always run all apps in landscape mode.
So if the digital signage display is a landscape screen eg 1920x1080 then the app will run in landscape and not in portrait, 1080x1920

Maybe the customer’s app has the same problem as APKPure app and it’s solved by my firmware?

I will check the HDMI settings being greyed out, maybe something to do with the type of screen being used.
Do you have information about the digital signage display being used, manufacturer, display size, connect with HDMI cable or another way, it’s an HDMI display or edp screen?

This is not working for this kind of product. You can turn the display with this. But the rotation is not a native rotation.
If you use team viewer the rotation is still the landscape mode.
My customer is controlling the displays with team viewer.

IF I make the same firmware but let Teamviewer and the app go to portrait mode and other apps landscape depending on how the apps were designed, will it help or not?

This is also not possible because my customer needs the same Layout like the displays are configured with.

Hi

Please check this document.
https://github.com/rockchip-toybrick/RKDocs-common/blob/master/display/Rockchip_Developer_Guide_Dual_Display_Rotation_Direction_Debugging_CN.pdf
Copy paste the Chinese text parts and use Google translate.
Is there perhaps some picture, case in there that is suitable for your project, how the rotation must look like and the problem how it currently looks?

Is it a edp, mipi or HDMI screen they are using?
This is important since then such screen support has to be added to the kernel.
Are they uing dual-display?
The screen used, is it in a portrait standing or landscape standing position.
Does it have a sensor to change orientation if moved?

Hi, this is connected with HDMi.No Sensor.
It is used in different positions. They have more Displays for example 30pcs on an Airport. This is why they need the possibility to change this in Software.

Hi, Do you use Android9 tablet version?

If you are using an Android9 tablet, try tunersettings-> display-> HDMI

The customer is using this version https://github.com/radxa/manifests/releases/tag/RockPi-android7.1.2-20190719_1211

If you have downloaded the source code, modify it as follows

packages/apps/Settings:) git diff
diff --git a/src/com/android/settings/HdmiSettings.java b/src/com/android/settings/HdmiSettings.java
index f21085c..936e692 100755
--- a/src/com/android/settings/HdmiSettings.java
+++ b/src/com/android/settings/HdmiSettings.java
@@ -284,7 +284,7 @@ public class HdmiSettings extends SettingsPreferenceFragment
     private void updateHDMIState() {
         Display[] allDisplays = mDisplayManager.getDisplays();
         String switchValue = SystemProperties.get("sys.hdmi_status.aux", "on");
-        if (allDisplays == null || allDisplays.length < 2 || switchValue.equals("off")) {
+        if (allDisplays == null || allDisplays.length == 0 || switchValue.equals("off")) {
             mHdmiResolution.setEnabled(false);
             mHdmiScale.setEnabled(false);
             mHdmiRotation.setEnabled(false);

I tried it myself. Rotation is ok, but Resolution still has problems. We need time to debug it. Thanks.

Modify the Rotation by providing a native API:

IWindowManager wm = IWindowManager.Stub.asInterface(ServiceManager.getService(Context.WINDOW_SERVICE));;
int value = Integer.parseInt(/*0/90/180/270*/);
android.os.SystemProperties.set("persist.sys.orientation", (String) obj);

if(value == 0)
    wm.freezeRotation(Surface.ROTATION_0);
else if(value == 90)
    wm.freezeRotation(Surface.ROTATION_90);
else if(value == 180)
    wm.freezeRotation(Surface.ROTATION_180);
else if(value == 270)
    wm.freezeRotation(Surface.ROTATION_270);

You need to call these hidden apis.

Hi, can you provide an working Android Image for this?