Correção de foco de áudio para Pokémon Go (e outros aplicativos) sem root

Um tutorial para impedir que o Pokémon Go (e outros aplicativos) roubem o foco do áudio sem root. Impede que Play Music, Spotify e PocketCasts interrompam a reprodução!

Apesar de diminuir em popularidade, Pokémon Go ainda tem um toneladas de fãs jogando o jogo todos os dias. Embora a maioria dos problemas do jogo tenham sido relacionado a trapaça, existem outros, menores, que incomodam os usuários existentes. Um desses problemas está relacionado ao foco de áudio no Android. Os usuários que gostam de ouvir música ou podcasts enquanto jogam Pokémon Go descobrem que a reprodução do áudio é interrompida imediatamente quando iniciam o jogo. Isso exige que os usuários reiniciem manualmente a reprodução em seu aplicativo de mídia favorito, como Google Play Music, Spotify ou PocketCasts. Hoje, vou mostrar como impedir que o Pokémon Go (ou qualquer outro aplicativo) roube o foco permanente do áudio - sem raiz.

O que acontece quando o Pokémon Go é iniciado é que ele solicita foco de áudio do sistema, o que significa que qualquer reprodução de mídia existente no mesmo fluxo de volume será

abaixou-se. A questão aqui é que o foco de áudio do Android depende de um sistema de honra entre os aplicativos. O Android não escolhe quais aplicativos devem ser priorizados para manter o foco; em vez disso, ele depende de aplicativos que solicitam e liberam o foco conforme necessário. Assim, como o Pokémon Go solicita foco de áudio quando é iniciado, outros aplicativos não conseguem impedi-lo de assumir o controle do volume da mídia.

Algumas aplicações como Amplificador de potência ou Viciado em podcast têm configurações experimentais para manter o foco do áudio e evitar que outros aplicativos o roubem, mas obviamente muitos aplicativos de mídia por aí não o fazem. Alguns usuários criaram sua própria maneira de manter o foco do áudio usando Tasker perfis, que é algo que eu provavelmente teria tentado se não houvesse uma maneira melhor - mas felizmente há. Envolve o uso de um comando ADB oculto para acessar a interface de linha de comando do sistema de gerenciamento de permissões do Android, conhecido como appops. Com um único comando, você pode impedir que o Pokémon Go (ou qualquer outro aplicativo) retome o foco do áudio!

O método que estamos usando aqui é voltado para usuários não rooteados que não estão executando nenhum tipo de ROM personalizada. Usuários de ROM personalizada, como os do LineageOS, podem ter acesso a um método de controle de permissão mais poderoso que permite ignorar a necessidade desse comando.


Impedir que o Pokémon Go tire o foco do áudio - Tutorial

  1. Baixe e instale os drivers USB para o seu dispositivo - provavelmente só será necessário se estiver no Windows.
  2. Faça o download do Binário ADB para o seu sistema operacional e extraia o arquivo para qualquer pasta do seu PC.
  3. No seu telefone, abra Configurações e encontre a opção “Sobre o telefone”.
  4. Role para baixo para encontrar o valor “Build Number” e toque nele 7 vezes, ativando o modo de desenvolvedor.
  5. De volta ao menu principal em Configurações, entre em Opções do desenvolvedor.
  6. Habilite o modo de depuração USB aqui, conforme mostrado abaixo.
  7. Conecte seu telefone ao PC e no telefone altere o modo USB do modo “somente carga” para o modo “transferência de arquivos (MTP)”.
  8. De volta ao PC, navegue até onde você extraiu o binário ADB.
  9. Abra um prompt de comando neste diretório ADB. No Windows, o método mais fácil de fazer isso é pressionar Shift+clique com o botão direito. No menu de contexto, escolha a opção “abrir janela de comando aqui”. Usuários de Mac ou Linux, abram um Terminal.
  10. Digite o seguinte comando: adb devices
  11. Isso iniciará o daemon ADB. Se esta for a primeira vez que você executa o ADB, você verá um prompt solicitando que você autorize uma conexão. Permitir.
  12. Execute novamente o comando da etapa 10 e você verá o número de série do seu dispositivo na saída. Nesse caso, passe para a próxima etapa. Caso contrário, reinstale seus drivers.
  13. (Opcional): se você deseja restringir um aplicativo diferente do Pokémon Go de ter foco em áudio, instale o Inspetor de aplicativos app e encontre o pacote listado sob o nome do aplicativo.
  14. Envie o seguinte comando: adb shell
  15. Em seguida, execute este comando: cmd appops set TAKE_AUDIO_FOCUS ignore. Por exemplo, para Pokémon Go o comando seria: cmd appops set com.nianticlabs.pokemongo TAKE_AUDIO_FOCUS ignore
    Exemplo: Comando usado para Pokémon Go

    Atualização: se o comando acima não estiver funcionando para você, tente excluir “cmd” do comando. Ouvi dizer que isso pode ser necessário se você estiver executando o Android 6.0 Marshmallow ou anterior.

  16. Contanto que você não receba uma mensagem de erro na janela, deveria ter funcionado. Parabéns! Agora o Pokémon Go não impedirá que o Google Play Music, Spotify, PocketCasts ou qualquer outro aplicativo seja reproduzido nele!

Explicação

Conforme mencionado no início, estamos usando a linha de comando para fazer interface com appops, que é o sistema do Android voltado para o usuário para lidar com permissões de aplicativos. Por padrão, existem apenas algumas permissões que os usuários podem alternar na IU de configurações. Certas ROMs personalizadas (como LineageOS com seu Privacy Guard) expõem mais permissões que você pode restringir, mas para usuários não rooteados a única maneira de lidar com essas permissões é através da linha de comando.

De qualquer forma, a permissão específica que estamos restringindo é android.permission.TAKE_AUDIO_FOCUS qual qualquer aplicativo que o solicite em seu AndroidManifest.xml arquivo é concedido automaticamente na instalação. Graças ao comando appops acima, podemos retirar essa permissão do Pokémon Go, o que significa que não pode não solicita mais foco de áudio e, portanto, não pode mais impedir que outros aplicativos de música ou podcast em seu telefone jogando.

Embora o tutorial acima seja voltado para usuários de Pokémon Go, tecnicamente você pode fazer o mesmo para qualquer outro aplicativo. Basta modificar o nome do pacote na etapa 15 com qualquer outro aplicativo desejado. Apenas tome cuidado para não restringir essa permissão de qualquer maneira, porque o Google ocultou intencionalmente essa permissão para que os usuários não bagunçassem as coisas.

Veja outros ótimos tutoriais como este em nosso categoria de tutoriais. Fique por dentro das últimas novidades com o aplicativo XDA Labs.