Para evitar que esta pregunta se marque como duplicada, he incluido una lista de preguntas similares al final de esta publicación con una explicación de por qué mi pregunta es diferente. Lea estos motivos antes de marcar esta pregunta como duplicada.
Estoy tratando de averiguar cómo hacer que mi Nexus 5, en modo vertical, se muestre en un monitor externo, en modo vertical (conectado a través de SlimPort/HDMI).
En modo horizontal todo está bien:
Sin embargo, en el modo vertical, la señal aún se emite como si estuviera destinada a mostrarse en una pantalla horizontal, lo que no funciona en absoluto si la pantalla está en modo vertical:
Puede ver aquí que tanto en el modo horizontal como en el vertical, el teléfono emite la misma señal de 1920x1080, excepto que en el modo vertical, la GPU del teléfono gira el contenido de la pantalla y se muestra como una imagen de 607x1080 en el medio de la pantalla de 1920x1080. (No es, como algunas personas han sugerido, emitir una señal de 1080x1920 de que el monitor está centrado. Puede verificar esto porque al cambiar el teléfono entre paisaje y retrato muestra una buena animación de rotación y el monitor no pierde la sincronización como lo haría si el la resolución cambió.)
Dado que el teléfono, cuando está en modo vertical, está girando la imagen enviada a la pantalla externa, quiero deshabilitar esto, para que solo se emita tal cual, sin rotación. Esto, por supuesto, aparecerá mal en un monitor horizontal, pero cuando gire ese monitor al modo vertical, estará bien:
¿Hay alguna forma de deshabilitar esta rotación para que una pantalla externa en modo vertical pueda mostrar el contenido del teléfono cuando también está en modo vertical?
Se han hecho preguntas similares antes, pero ninguna después de la misma solución:
Pruebe estas instrucciones, usando una computadora con adb instalado y su teléfono conectado:
Android Jelly Bean (4.2) bloquea la rotación de HDMI de forma predeterminada. Puede desbloquear siguiendo las instrucciones de este compromiso.
Agregue modos de duplicación especiales para fines de demostración.
Suponga que la rotación de la pantalla HDMI es vertical.
adb shell setprop persist.demo.hdmirotation portrait
No bloquee la rotación mientras el HDMI esté conectado.
adb shell setprop persist.demo.hdmirotationlock false
Oculte las pantallas secundarias de las aplicaciones, pero continúe reflejándolas.
adb shell setprop persist.demo.singledisplay true
Fuente: https://community.freescale.com/docs/DOC-97740 (nota: enlace roto a partir de enero de 2022)
persist.demo.hdmirotation
propiedad. Si no es el usuario raíz, obtendrá un error cuando intente establecer la propiedad. El único inconveniente es que la señal de salida es 1280x1024 en lugar de 1920x1200, ¡pero al menos está girada! ¡El siguiente paso es descubrir cómo cambiar la resolución!getprop | grep demo
para confirmar que los valores que ha establecido se han almacenado correctamente.Sé que esta es una publicación anterior, pero estaba lidiando con un problema similar, pero estaba tratando de proyectar la pantalla de un dispositivo Pixel 2 en una pantalla vertical y me encontré con muchos problemas. El problema principal parece ser que los píxeles 2 y 3 no parecen admitir la salida HDMI, por lo que estas propiedades no resuelven el problema.
Sin embargo, pude resolver esto siguiendo el enlace que Malvineous publicó en un comentario anterior. Justo debajo del código relacionado con la configuración, persist.demo.hdmirotation
hay otra configuración llamada persist.demo.remoterotation
así como otra llamada persist.demo.rotationlock
. Estas fueron la clave para lograr que un teléfono transmitiera en modo vertical a la pantalla. Estas configuraciones parecen existir en las versiones 8.0 y 9.0 de Android, aunque cambié de categoría mi Pixel 2 a 8.0 en el proceso de tratar de resolver esto y aún no he probado en 9.0.
Para llegar a este punto tomó varios pasos que se detallan a continuación.
adb shell
su
en shell (para mí, esto tenía el paso adicional de ingresar a MagiskManager y permitir el acceso de SuperUser al shell).setprop persist.demo.remoterotation portrait
setprop persist.demo.rotationlock false
Una vez que se configuró, transmití la pantalla de mi Pixel 2 a un dispositivo Chromecast y estaba en la orientación vertical deseada. Espero que esto ayude a cualquiera que en el futuro intente resolver esto.
uli
Malvinas
setprop persist...
allí para poder ver cualquier mensaje de error más claramente y estar seguro de que era el usuario root.