Como é especificada a orientação da tela padrão no Android?

11

Nos telefones Android, a orientação normalmente é o retrato. Quando você desativa a rotação automática, a tela sempre permanece no modo retrato.

Em tablets Android, a orientação normalmente é paisagem. Quando você desativa a rotação automática, a tela sempre permanece no modo paisagem.

Aparentemente, os comprimidos não estavam previstos para uso enquanto estavam deitados de lado. Quando faço isso, não há como manter o tablet no modo retrato - com ou sem rotação automática, a tela fica presa na paisagem.

Como é muito difícil alterar a gravidade, estou tentando descobrir se consigo hackear meu tablet para o modo retrato. Minha pergunta é: onde isso seria definido? Como não consigo encontrar aplicativos que possam forçar a alteração da orientação, tenho a impressão de que ele está incorporado em algum lugar profundo e inacessível no sistema operacional. Isso possivelmente está em algum lugar no arquivo de propriedades? Ele está embutido no hardware? Onde posso começar a procurar?

Meu tablet específico é um Noion Ink Adam Running BeastyRom 2.2.1 + Clemsyn

edit: também solicitado aqui: http://forum.xda-developers.com/showthread.php?p=14315083#post14315083

fostandy
fonte

Respostas:

11

É possível substituir a orientação padrão da tela, desativando a rotação do acelerômetro e configurando a rotação do usuário no banco de dados de configurações do sistema. O telefone / tablet precisa estar enraizado para fazer isso. A alteração é aplicada após a reinicialização do telefone / tablet.

No 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
  • rotação do usuário 1 -> ROTATION_180
  • user_rotation 2 -> ROTATION_270
  • user_rotation 3 -> ROTATION_90

Consulte http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION para obter mais detalhes

Jakub Czaplicki
fonte
1
Em vez de fazer o root do telefone / tablet, você pode simplesmente escrever um aplicativo que altera essas configurações permanentemente. Adicione <uses-permission android:name="android.permission.WRITE_SETTINGS" />ao manifesto a permissão necessária e, no código, execute Settings.System.putInt(this.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0);para desativar a rotação automática e Settings.System.putInt(this.contentResolver, Settings.System.USER_ROTATION, Surface.ROTATION_0);definir a nova rotação de tela padrão do telefone.
Sam
can't find sqlite3, tenha uma ideia ?
Muhammed Refaat
@Sam woooow seu caminho é simplesmente fantástico e totalmente trabalhou comigo
Muhammed Refaat
1
@ MuhammedRefaat, na verdade, descobri uma falha nessa abordagem: ativar e desativar a configuração de rotação automática por meio da interface do usuário de configurações do telefone redefine o USER_ROTATIONvalor.
Sam
@Sam sim isso é certo, e realmente grande dica
Muhammed Refaat
1

Você pode usar um iniciador doméstico personalizado como o ADW -

Vá para Configurações do ADWS> Configurações da interface do usuário> Preferências da tela> Orientação doméstica, para especificar a orientação desejada.

Além disso, não tenho certeza de que é possível

Somente outra coisa poderia ser ROM personalizada

admintech
fonte
2
que define a orientação inicial para o iniciador. Quando eu iniciar um aplicativo que, em seguida, entra em modo paisagem
fostandy
1

A auto-rotateconfiguração é exatamente isso, automática. Quando está desativado, o dispositivo nem sempre usa uma orientação de tela única, mas usa qualquer orientação que esteja ativa ao entrar em um aplicativo, até que ele seja fechado. Pelo menos, isso é banal para telefones, tenho pouca experiência com tablets, mas espero que seja o mesmo. Se estiver, apenas verifique se o tablet está em retrato quando você inicia o aplicativo, e você estará bem.

jlehenbauer
fonte
esse não é o meu caso. Se eu ativar auto-rotate, em seguida, oriente-o para o modo retrato, depois entre em um aplicativo e, em seguida auto-rotate, desative-o .
fostandy
e se você desativar auto-rotate, segure o tablet horizontalmente e inicie um aplicativo?
jlehenbauer
então meus orienta lançador em modo paisagem eo aplicativo também começa no modo paisagem
fostandy
o que acontece se você fizer a mesma coisa, mas começar na vertical, no modo retrato? como o iniciador e o aplicativo reagem?
jlehenbauer
Não consigo - quando desativo auto-rotateo tablet entra no modo paisagem. Para iniciar aplicativos em modo retrato que eu tenho para permitir auto-rotação (ver o meu primeiro comentário)
fostandy
0

Modo lateral

Eu escrevi um aplicativo para permitir que você use a rotação automática mesmo quando estiver deitado de lado. Você pode obtê-lo na Play Store aqui .

Sam
fonte