¿Cómo se especifica la orientación de pantalla predeterminada en Android?

11

En los teléfonos Android, la orientación suele ser vertical. Cuando deshabilita la rotación automática, la pantalla siempre permanecerá en modo vertical.

En las tabletas con Android, la orientación generalmente es horizontal. Cuando deshabilita la rotación automática, la pantalla siempre permanecerá en modo horizontal.

Aparentemente, no se previó el uso de tabletas mientras estaban acostadas de lado. Cuando hago esto, no hay forma de que la tableta permanezca en modo vertical: con o sin rotación automática, la pantalla se atasca en el paisaje.

Como es bastante difícil para mí cambiar la gravedad, estoy tratando de descubrir si puedo hackear mi tableta para pasar al modo vertical por defecto. Mi pregunta es, ¿dónde se establecería esto? Como no puedo encontrar ninguna aplicación que pueda forzar el cambio de orientación, tengo la impresión de que está incrustado en algún lugar profundo e inaccesible en el sistema operativo. ¿Es esto posiblemente en algún lugar del archivo de propiedades? ¿Está incrustado profundamente en el hardware? ¿Dónde puedo empezar a buscar?

Mi tableta específica es una Notion Ink Adam Running BeastyRom 2.2.1 + Clemsyn

editar: también se pregunta aquí: http://forum.xda-developers.com/showthread.php?p=14315083#post14315083

fostandy
fuente

Respuestas:

11

Es posible anular la orientación de pantalla predeterminada deshabilitando la rotación del acelerómetro y configurando la rotación del usuario en la base de datos de configuración del sistema. El teléfono / tableta debe estar rooteado para hacer esto. El cambio se aplica después de reiniciar el teléfono / tableta.

En la consola:

su
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
insert into system (name,value) values('accelerometer_rotation',0);
insert into system (name,value) values('user_rotation',1);
.exit
  • user_rotation 0 -> ROTATION_0
  • user_rotation 1 -> ROTATION_180
  • user_rotation 2 -> ROTATION_270
  • user_rotation 3 -> ROTATION_90

Ver http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION para más detalles

Jakub Czaplicki
fuente
1
En lugar de rootear el teléfono / tableta, simplemente puede escribir una aplicación que cambie esta configuración de forma permanente. Agregue <uses-permission android:name="android.permission.WRITE_SETTINGS" />al manifiesto para darle el permiso requerido y en la ejecución del código Settings.System.putInt(this.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0);para deshabilitar la rotación automática y Settings.System.putInt(this.contentResolver, Settings.System.USER_ROTATION, Surface.ROTATION_0);configurar la nueva rotación de pantalla predeterminada del teléfono.
Sam
can't find sqlite3, tengo una idea ?
Muhammed Refaat
@Sam woooow tu camino es simplemente increíble y funcionó totalmente conmigo
Muhammed Refaat
1
@MuhammedRefaat, en realidad descubrí un defecto en este enfoque: habilitar y deshabilitar la configuración de rotación automática a través de la interfaz de usuario de la configuración del teléfono restablece el USER_ROTATIONvalor.
Sam
@Sam, sí, es cierto, y una gran pista
Muhammed Refaat, el
1

Podrías usar un lanzador casero personalizado como ADW -

Vaya a Configuración de ADW> Configuración de IU> Preferencias de pantalla> Orientación de inicio, esto le permite especificar qué orientación desea.

Aparte de eso, no estoy seguro de que sea posible

Solo otra cosa podría ser ROM personalizada

admintech
fuente
2
que establece la orientación de inicio para el iniciador. Cuando inicio una aplicación, se pone en modo horizontal
fostandy
1

El auto-rotateajuste es solo eso, automático. Cuando está deshabilitado, el dispositivo no siempre usa una orientación de pantalla única, sino que usa cualquier orientación que esté activa al ingresar a una aplicación, hasta que la aplicación se cierre. Al menos, esto es trivial para teléfonos, tengo poca experiencia con tabletas, pero espero que sea lo mismo. Si es así, solo asegúrese de que la tableta esté en posición vertical cuando inicie la aplicación, y estará bien.

jlehenbauer
fuente
Este no es el caso para mí. Si lo habilito auto-rotate, luego oriéntelo para que esté en modo vertical, luego ingrese una aplicación, luego desactívelo auto-rotate, mi tableta vuelve a la posición horizontal.
fostandy
¿Qué sucede si deshabilita auto-rotate, sostiene la tableta horizontalmente y luego inicia una aplicación?
jlehenbauer
entonces mi lanzador se orienta en modo horizontal y la aplicación también se inicia en modo horizontal
2011
¿Qué sucede si haces lo mismo, pero comienzas verticalmente, en modo vertical? ¿Cómo reaccionan el lanzador y la aplicación?
jlehenbauer
No puedo, cuando desactivo auto-rotatemi tableta entra en modo horizontal. Para iniciar aplicaciones en el modo de retrato que tengo para permitir auto-rotación (ver mi primer comentario)
fostandy
0

Modo lateral

He escrito una aplicación para permitirle usar la rotación automática incluso cuando está acostado de lado. Puedes obtenerlo en Play Store aquí .

Sam
fuente