Comment l'orientation de l'écran par défaut dans Android est-elle spécifiée?


11

Sur les téléphones Android, l'orientation est généralement définie par défaut sur portrait. Lorsque vous désactivez la rotation automatique, l'écran restera toujours en mode portrait.

Sur les tablettes Android, l'orientation par défaut est généralement le paysage. Lorsque vous désactivez la rotation automatique, l'écran restera toujours en mode paysage.

Apparemment, les comprimés n'étaient pas prévus pour être utilisés en position allongée sur le côté. Lorsque je fais cela, il n'y a aucun moyen de faire en sorte que la tablette reste en mode portrait - avec ou sans rotation automatique, l'écran est coincé en mode paysage.

Comme il est assez difficile pour moi de changer la gravité, j'essaie de savoir si je peux pirater ma tablette pour passer par défaut en mode portrait. Ma question est, où cela serait-il réglé? Comme je ne trouve aucune application pouvant forcer le changement d'orientation, j'ai l'impression que cela est intégré quelque part profondément et inaccessible dans le système d'exploitation. Est-ce peut-être quelque part dans le fichier de propriétés? Est-il intégré profondément dans le matériel? Où puis-je commencer à chercher?

Ma tablette spécifique est une Notion Ink Adam Running BeastyRom 2.2.1 + Clemsyn

edit: également demandé ici: http://forum.xda-developers.com/showthread.php?p=14315083#post14315083

Réponses:


11

Il est possible de remplacer l'orientation d'écran par défaut en désactivant la rotation de l'accéléromètre et en définissant la rotation de l'utilisateur dans la base de données des paramètres système. Le téléphone / tablette doit être enraciné pour ce faire. La modification est appliquée après le redémarrage du téléphone / tablette.

Sur la console:

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

Voir http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION pour plus de détails


1
Au lieu d'enraciner le téléphone / la tablette, vous pouvez simplement écrire une application qui modifie ces paramètres de manière permanente. Ajoutez <uses-permission android:name="android.permission.WRITE_SETTINGS" />au manifeste pour lui donner l'autorisation requise et dans le code, Settings.System.putInt(this.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0);désactivez la rotation automatique et Settings.System.putInt(this.contentResolver, Settings.System.USER_ROTATION, Surface.ROTATION_0);définissez la nouvelle rotation d'écran par défaut du téléphone.
Sam

can't find sqlite3, j'ai une idée ?
Muhammed Refaat du

@Sam woooow votre chemin est tout simplement génial et cela a totalement fonctionné avec moi
Muhammed Refaat

1
@MuhammedRefaat, en fait, j'ai depuis découvert une faille dans cette approche: l'activation et la désactivation du paramètre de rotation automatique via l'interface utilisateur des paramètres du téléphone réinitialise en fait la USER_ROTATIONvaleur.
Sam

@ Sam ouais c'est vrai, et vraiment un bon indice
Muhammed Refaat

1

Vous pouvez utiliser un lanceur d'accueil personnalisé comme ADW -

Allez dans ADWSettings> UI Settings> Screen Preferences> Home Orientation cela vous permet de spécifier quelle orientation vous voulez.

A part ça, je ne sais pas si c'est possible

Seule autre chose pourrait être une ROM personnalisée


2
qui définit l'orientation de la maison pour le lanceur. Lorsque je démarre une application, elle passe en mode paysage
fostandy

1

Le auto-rotateréglage est juste ça, automatique. Lorsqu'il est désactivé, l'appareil n'utilise pas toujours une seule orientation d'écran, mais utilise l'orientation qui est active lors de la saisie d'une application, jusqu'à ce que cette application soit fermée. Au moins, c'est banal pour les téléphones, j'ai peu d'expérience avec les tablettes, mais je pense que ce serait la même chose. Si c'est le cas, assurez-vous simplement que la tablette est en mode portrait lorsque vous lancez l'application, et vous serez bien.


ce n'est pas le cas pour moi. Si j'active auto-rotate, puis l'orienter pour qu'il soit en mode portrait, puis entrer dans une application, puis désactiver auto-rotate, ma tablette revient en mode paysage.
fostandy

que faire si vous désactivez auto-rotate, tenez la tablette horizontalement, puis lancez une application?
jlehenbauer

puis mon lanceur s'oriente en mode paysage et l'application démarre également en mode paysage
fostandy

que se passe-t-il si vous faites la même chose, mais que vous démarrez verticalement, en mode portrait? comment le lanceur et l'application réagissent-ils?
jlehenbauer

Je ne peux pas - lorsque je désactive auto-rotatema tablette passe en mode paysage. Pour démarrer des applications en mode portrait, je dois activer la rotation automatique (voir mon premier commentaire)
fostandy

0

Mode latéral

J'ai écrit une application pour vous permettre d'utiliser la rotation automatique même lorsque vous êtes allongé sur le côté. Vous pouvez l'obtenir sur le Play Store ici .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.