É possível ativar ou desativar o recurso Rotação automática pelo aplicativo?

17

Estou cansado de ativar a rotação automática sempre que uso o Google Maps para navegação. Eu não sei por que não é apenas paisagem automaticamente como aplicativos como o Youtube.

Existe uma maneira de ativar a rotação automática APENAS para o Google Maps e não para qualquer outro aplicativo.

Existe um aplicativo que faria isso ou de alguma forma o programa no Tasker?

Unidade de disco
fonte
@ Firelord: sim, normalmente estou no modo retrato, mas quando quero usar o Google Maps Navigation, quero-o em rotação automática. Ter o google maps em rotação automática seria aceitável se você não conseguir isolar a parte de navegação dele.
Diskdrive

Respostas:

22

Esta solução requer o Tasker instalado e ativado. Testado no Android 4.2.1, 4.4.2, 5.0.2 e 5.1.1.

  1. Crie um perfil com Aplicativo → Mapas
  2. Crie uma ação em Tarefa do perfil acima como + → Exibir → Exibir rotação automática e defina como Ativado .
  3. Ativar perfil e Tasker.

Abra o Maps e oriente seu dispositivo no modo paisagem. O Maps o seguirá. Feche os mapas e o dispositivo voltará a retrato.

Desfrutar!


OU

Editar início: 06/06/2015

Existe uma maneira de forçar o sistema a entrar no modo Paisagem alterando um valor para settings.db. (Testado no Android 4.2.1, raiz necessária apenas nesta edição.)

  1. Crie um perfil com Aplicativo → Mapas .
  2. Crie uma ação em Tarefa do perfil acima como + → Código → Executar Shell e insira os seguintes detalhes:

    • Comando :settings put system user_rotation 1
    • Marque Usar raiz .
  3. Crie outro perfil com o inverso de Aplicativo → Mapas .
  4. Crie uma ação em Tarefa do perfil acima como + → Código → Executar Shell e insira os seguintes detalhes:

    • Comando :settings put system user_rotation 0
    • Marque Usar raiz .
  5. Ative perfis e Tasker.

Os mapas agora entram automaticamente no modo paisagem, independentemente da orientação manual do seu dispositivo. Depois de fechá-lo, o dispositivo retornará ao modo Retrato. (Observe que o OP tem o recurso de rotação automática desativado, portanto deve funcionar.)

Essa edição é destinada a usuários como eu, que em dispositivos lentos precisam aguardar o aplicativo seguir sua orientação. :)

Desfrutar!

OU

A falha no último método é que, em alguns dispositivos, o aplicativo abrirá primeiro no modo Retrato e forçará a mudança para o modo Paisagem. No entanto, o aplicativo pode ser iniciado diretamente no modo Paisagem usando um atalho do aplicativo. Tasker permite e vamos usá-lo.

  1. Vá para o iniciador padrão → Widgets e escolha Atalho da tarefa .
  2. Selecione Nova tarefa → nomeie-a.
  3. Crie uma ação como + → Código → Executar Shell e insira os seguintes detalhes:

    • Comando :settings put system user_rotation 1
    • Marque Usar raiz .
  4. Crie outra ação como +Aplicativo → Iniciar aplicativo → selecione Mapas .
  5. Para alterar o ícone do atalho, toque no ícone quadrado 3x3 (na parte inferior da janela Atalho da tarefa ) e escolha o ícone.
  6. Agora você verá um atalho com o ícone selecionado na etapa 4 e o nome escolhido na etapa 2.
  7. Crie um perfil no Tasker com o inverso de Aplicativo → Mapas .
  8. Crie uma ação em Tarefa do perfil acima como + → Código → Executar Shell e insira os seguintes detalhes:

    • Comando :settings put system user_rotation 0
    • Marque Usar raiz .
  9. Ative perfis e Tasker.

Agora aproveite o modo automático forçado!

Edição encerrada: 06/06/2015


Para quem é novo no Tasker

  1. Inicie o Tasker. (Observe que quando terminar de alterar algo no Tasker, toque em Voltar uma vez. O Tasker alterará / fechará a janela ativa e salvará as configurações.)
  2. Na guia PERFIS, toque em +Aplicativo → escolha MapasNova tarefadê um nome a ele e toque no ícone direito.

    Algumas versões do Android podem solicitar que você ative o serviço de acessibilidade do Tasker. Faça isso seguindo as instruções e volte ao Tasker.

    Esta etapa criaria um perfil que será acionado sempre que o Maps for iniciado pelo usuário.

  3. Agora estamos sob a tarefa nomeada (dentro da guia TAREFAS). Toque em +Exibir → Exibir AutoRotação → escolha Onabaixo de Definir .

    Estamos criando uma ação aqui que será executada assim que o perfil for acionado.

  4. Volte à tela principal do Tasker e você verá um perfil com o nome do aplicativo Maps e marcado como Ativado .
  5. Minimize o Tasker e você verá seu ícone na barra de notificações. Vai dizer No active profile. A mensagem mudará assim que você iniciar o Maps.
  6. Bem, inicie o Maps e veja a mágica. Você orienta seu dispositivo e o Maps fará o mesmo. Você fecha os mapas e o dispositivo volta ao modo retrato.
  7. Você sempre pode interromper esse comportamento desativando ou excluindo o perfil no Tasker. Você também pode ocultar o ícone de notificação do Tasker através de suas configurações.

Aproveite o Google Maps agora!

Senhor do Fogo
fonte
companheiro, isso é exatamente o que eu estava procurando. um brinde por isso!
Diskdrive
3
Eu tenho vergonha, senhor do fogo! Normalmente sou eu trazendo Tasker para jogar. Dessa vez, eu tinha um aplicativo diferente em mente e os usuários do Tasker (como eu) nem precisavam disso. Então você definitivamente ganhou um +1 de mim :) E tentarei trazer minha resposta alternativa, pois Tasker é a) não é gratuito eb) geralmente é demais para iniciantes;)
Izzy
@Izzy Thanks! E estou ansioso por (como sempre) solução elegante para todos de você. O motivo de eu não estender as etapas do Tasker para mais detalhes é porque o OP está ciente do Tasker. No entanto, este é um erro em minha parte desde um futuro leitor pode não estar ciente de de Tasker know-how . Guess, eu deveria escreveu-lo como este para fácil seguinte. :)
Senhor do Fogo
Nenhuma crítica para você (embora eu concorde que etapas mais detalhadas possam ser úteis para outros usuários , vejo por que elas não foram necessárias aqui). Eu estava batendo na minha cabeça por não ter pensado nisso :)
Izzy
1
Uau! Um voto negativo! Esta resposta não pode falhar , então por que recebeu um voto negativo? Considere explicar por favor, respeitado downvoter.
Firelord
5

Se você estiver enraizado (e provavelmente não estiver usando pirulito), também poderá usar as Configurações do aplicativo do módulo xposed .

Abra o módulo, pesquise e abra Mapas, vá para a seção Orientação e selecione "rotação automática". Isso forçará a rotação automática.

Jaskaranbir Singh
fonte
Os recursos parecem promissores, mas existe uma maneira de eu descobrir como esse módulo força um aplicativo a permanecer em um modo? Se ao menos eu puder emular isso no Tasker, um poderá ser salvo do enraizamento ou as configurações exigirão root. SEI LÁ!
Firelord
1
Desculpe por precisar estudar seu código-fonte (o que não tenho), então ainda não sei exatamente como ele funciona: / Btw, aqui está o código-fonte para ele-> repo.xposed.info/module/de.robv.android .xposed.mods.appsettings :)
Jaskaranbir Singh
1
+1 Em comparação com a minha resposta "Rotação automática forçada" é bastante, mas meio que travou a temperatura da CPU . ;)
Firelord
3

Além da solução Tasker da Firelord (que eu sou a favor de todas as outras mencionadas neste post - mas a Tasker é a) não é livre eb) geralmente um pouco esmagadora para iniciantes, especialmente) e as Configurações de aplicativos de Jaskaranbir (como Tasker , Xposed geralmente são um pouco demais para alguns), há uma terceira opção disponível, chamada PerApp . Admitido, ele não foi atualizado por um tempo, mas pode ser mais fácil de usar. Antes do JellyBean (<4.1), ele nem sequer requer raiz para ajustar a rotação da tela. Também tem várias outras configurações, então você pode dar uma olhada.

Izzy
fonte
É precisamente porque muitos desses aplicativos não são atualizados desde 2013, pedi à OP o seu dispositivo e a versão do Android para que uma boa recomendação pudesse dar respostas. Acho que o OP está feliz com Tasker agora. :) // Dito isto, posso forçar um aplicativo no modo paisagem através do Tasker? Eu olhei no AndroidManifest.xmlMaps, mas no IDT vi algo útil.
Firelord
1
Estou ciente de que o OP favorece a solução Tasker (como eu). Minha resposta foi apenas uma adição para futuros visitantes procurando "algo fácil" :) E não, eu não brinquei com o material de orientação do Tasker, então não posso dizer. Seja bem-vindo à verificação da minha coleção de recursos da Tasker , pode haver alguns tutoriais ou complementos disponíveis :) #
1155 Izzy
PerApp não funcionou para mim (Marshmallow Android)
marmor
3

Você pode usar um aplicativo chamado Definir orientação em "Projeto sem olhos". Ele não requer raiz e pode forçar qualquer aplicativo a girar para qualquer orientação e também apenas paisagem e paisagem inversa com base no sensor. É leve e também gratuito. Está disponível na Google Play Store.

Edit: Use Rotation - Orientation Manager em vez de "Pranav Pandey". É totalmente compatível com o Lollipop, é gratuito e não requer raiz. Este aplicativo também possui configurações por aplicativo que o aplicativo anterior não possuía.

PSP
fonte
+1. "Definir orientação" não atende aos requisitos da pergunta porque impõe a orientação em todo o sistema. Por outro lado, "Rotação - Gerenciador de orientação" faz o trabalho bem por aplicativo. No entanto, não era bom no meu dispositivo (dispositivo antigo), mas faz o trabalho.
Firelord
1

A versão gratuita do MacroDroid também pode fazer o trabalho, embora eu ainda prefira a solução usando o Tasker .

  1. Instale e inicie o MacroDroid .
  2. Toque em Adicionar macro → Iniciador de aplicativos / fechado → Aplicativo iniciado → OK → selecione o (s) aplicativo (s) para rotação automática → OK .
  3. Em Adicionar ações , toque em Girar automaticamente ativado / desativado → Girar automaticamente ativadoOK → prosseguir.
  4. Ignorar Adicionar restrições → prossiga e nomeie a macro como Auto Rotate On.
  5. Crie outra macro usando Adicionar macro → Iniciador de aplicativos / fechado → Aplicativo fechado → OK → selecione os aplicativos que você escolheu na etapa 2 → OK .
  6. Em Adicionar ações , toque em Ativar / Desativar rotação automática → Desativar rotação automática → OK → continuar.
  7. Ignorar Adicionar restrições → prossiga e nomeie a macro como Auto Rotate Off.

É isso aí. A funcionalidade é alcançada e você pode testá-la iniciando e fechando os aplicativos que você selecionou nas etapas acima mencionadas.

Senhor do Fogo
fonte
1

A versão gratuita do AutomateIt também faz o trabalho.

  1. Instale e inicie o AutomateIt.
  2. No bloco Minhas regras , toque em Adicionar regra → Disparador de status de aplicativos → em Aplicativo, toque nos ícones da lente e escolha seu (s) aplicativo (s) → Avançar .
  3. Na guia Ação , toque em Ativar / Desativar rotação da tela → Ativar rotação da tela → Avançar → Não → salve a regra.
  4. Crie outra regra no bloco Minhas Regras tocando em Adicionar Regra → Disparador de Status de Aplicativos → em Aplicativo, toque nos ícones de lentes e escolha seu (s) aplicativo (s) → desmarque Aplicativo AtivadoAvançar .
  5. Na guia Ação , toque em Ativar / Desativar rotação da tela → Desativar rotação da tela → Não → salve a regra.

É isso aí. A funcionalidade é alcançada e você pode testá-la iniciando e fechando os aplicativos que você selecionou nas etapas acima mencionadas.

Senhor do Fogo
fonte
1

E Tasker ainda permite que você adicione condicionais, como se minha exibição fosse assim, faça isso de outra forma. Então, com base nisso, criei minha própria solução, que pode parecer um pouco complicada, mas funciona para mim. Como meu dispositivo não está enraizado, os comandos do código do shell que requerem root não funcionariam de qualquer maneira.

No entanto, com um loop if else (poderia ser reduzido ainda mais porque eu adicionei algum código de depuração adicional inicialmente), você pode simplesmente definir o AutoRotate com base no valor de Orientation. Então, você armazena esses dois valores em duas variáveis ​​chamadas ROTATE e DISPLAY e, no início do loop if, verifica DISPLAY usando uma expressão regular (eu tive que fazer isso porque, por qualquer motivo, o valor da orientação continuava pulando entre paisagem e paisagem-reversa, para esse regex cuida de ambos):

% DISPLAY ~ R paisagem (. *)?

Se essa for a configuração desejada, nesse loop se ou então você pode definir a opção AutoRotate para Off . Além disso, também instalei um plug-in da Tasker chamado AutoInput, que permite bloquear os botões home e back. Para sair, posso pressionar o outro botão que abre todas as minhas janelas abertas e simplesmente fechar o aplicativo Adobe Acrobat, que é o gatilho para isso. tarefa.

Então, um grande Yay !! para Tasker. E sim, eu sei que estou um pouco atrasado para a festa, mas tudo bem :)

Isaac
fonte