Ambient Lock Screen Music é um aplicativo raiz que mostra qualquer música no Ambient Display do Pixel 2

Um novo aplicativo raiz chamado Ambient Lock Screen Music mostra qualquer música atualmente reproduzida na tela ambiente do Pixel 2 ou Pixel 2 XL.

As últimas novidades do Google Pixel 2 e Pixel 2 XL carros-chefe têm um novo recurso incrível chamado “Reproduzindo agora”. Usando uma combinação de software, hardware e aprendizado de máquina, o Pixel 2 usa um banco de dados off-line para identificar dezenas de milhares de músicas tocando em segundo plano. Em seguida, ele exibe essas músicas na tela de bloqueio do seu dispositivo, sempre em exibição ou como uma notificação contínua. O recurso parece enigmático no papel, mas depois de usá-lo, descobri que funciona muito bem. Dito isto, esse tipo de recurso não agrada a todos, então Colaborador Reconhecido pelo XDA Quinny899 surgiu um aplicativo chamado Música na tela de bloqueio ambiental o que permite que você exibir o nome e o artista de qualquer música atualmente tocando no seu dispositivo onde o texto Reproduzindo Agora normalmente apareceria.

Como você pode ver no vídeo acima, o desenvolvedor habilita o aplicativo e então começa a reproduzir uma música do Google Play Music. Quando eles mostram a tela de bloqueio, você pode ver a música atualmente tocando na parte inferior, onde normalmente veria o recurso Now Playing inserir texto ao reconhecer uma música.

A aplicação só funciona no Pixel 2/2 XL pois envia uma intent cujo receptor de intent correspondente está disponível apenas no aplicativo SystemUIGoogle presente no Pixel 2. Além disso, a aplicação requer acesso root para funcionar. Você pode baixar o aplicativo do XDA Labs no link abaixo.

[appbox xda com.kieronquinn.app.ambientlsmusic]

Não é só livre, mas também é totalmente anúncio grátis também. Ele suporta a exibição de títulos/artistas de músicas de quase todos os aplicativos de música, como Google Play Music, Spotify, YouTube Red e muito mais. Você também pode colocar aplicativos na lista negra para não exibirem texto na tela ambiente. Por fim, o aplicativo ainda permite que você toque duas vezes no texto mostrado na tela ambiente para iniciar o aplicativo de música.

Devemos observar que isso não substitui necessariamente o recurso Now Playing, embora possa entrar em conflito com ele. Se Reproduzindo Agora estiver ativado ao mesmo tempo e você estiver ouvindo música enquanto Reproduzindo Agora estiver detectando ativamente uma música, então o que enviar uma intenção para o SystemUI mais recente aparecerá no ambiente mostrar. Independentemente disso, o Now Playing ainda mostrará uma notificação com qualquer música detectada, então você não perderá o recurso se usar o Ambient Lock Screen Music.


Como funciona a música da tela de bloqueio ambiental

A intenção

Conforme mencionado anteriormente, este aplicativo funciona enviando uma intenção para o aplicativo SystemUIGoogle. No app do Quinny899, este é o código responsável pelo envio do intent:

Intent intent = new Intent("com.google.android.ambientindication.action.AMBIENT_INDICATION_SHOW").putExtra("com.google.android.ambientindication.extra.VERSION", 1).putExtra("com.google.android.ambientindication.extra.TEXT", broadcastString).putExtra("com.google.android.ambientindication.extra.TTL_MILLIS", time);
if(clickIntent != null)intent.putExtra("com.google.android.ambientindication.extra.OPEN_INTENT", clickIntent);
elseif(packageName != null) intent.putExtra("com.google.android.ambientindication.extra.OPEN_INTENT", PendingIntent.getActivity(context, 1, context.getPackageManager().getLaunchIntentForPackage(packageName), 0));
intent.setPackage(pName);
context.sendBroadcast(intent, "com.google.android.ambientindication.permission.AMBIENT_INDICATION");

Vamos analisar isso um pouco. A ação nesta intenção é "com.google.android.ambientindication.action.AMBIENT_INDICATION_SHOW" e tem alguns extras de intenção que podem ser enviados com ele.

O primeiro extra é "com.google.android.ambientindication.extra.VERSION" que atualmente leva apenas um valor inteiro de 1. O próximo extra é "com.google.android.ambientindication.extra.TEXT"que é onde definimos a string que queremos exibir na tela de bloqueio do display ambiente. O terceiro extra é "com.google.android.ambientindication.extra.OPEN_INTENT" que aceita um PendingIntent que abre com um toque duplo no texto. Quinny899 configurou o PendingIntent para abrir qualquer aplicativo que esteja tocando música ou um seletor para android.intent.action.MUSIC_PLAYER.

Por fim, para enviar esta intenção, o aplicativo chamador deve ter a permissão "com.google.android.ambientindication.permission.AMBIENT_INDICATION." Essa permissão é definida como assinatura|privilegiada e é por isso que este aplicativo requer acesso root.

Se quiser testar isso por conta própria, você pode abrir um terminal com acesso root ou uma sessão de shell ADB e inserir o seguinte comando:

ambroadcast-acom.google.android.ambientindication.action.AMBIENT_INDICATION_SHOW--eicom.google.android.ambientindication.extra.VERSION 1 --escom.google.android.ambientindication.extra.TEXT "helloworld"

Isso exibirá o texto “olá mundo” na tela ambiente. No entanto, não permitirá que você clique duas vezes, pois este comando não configura um PendingIntent.

Exibindo a música

O aplicativo possui dois métodos para capturar a música que está sendo tocada. A primeira é por meio do MediaController, que exige que o aplicativo seja vinculado como um ouvinte de notificação (embora na verdade não signifique que o aplicativo esteja interceptando notificações para ler o que está sendo reproduzido no momento canção). A segunda é através de receptores de transmissão que não necessitam de um ouvinte de notificação (e, portanto, consomem menos memória), mas é menos compatível, pois alguns aplicativos de música não enviam uma intenção de transmissão informando que este aplicativo está configurado para.

Outras aplicações

Usando essa mesma intenção, você pode configurar um aplicativo ou Tasker para enviar qualquer texto que desejar para a exibição do ambiente. Isso abre novas opções de personalização que dependem inteiramente do que você deseja ver. Por exemplo, você pode exibir o clima no lugar da música.