アンビエント ロック画面ミュージックは、Pixel 2 のアンビエント ディスプレイにあらゆる音楽を表示するルート アプリです

「アンビエント ロック画面ミュージック」と呼ばれる新しいルート アプリには、Pixel 2 または Pixel 2 XL のアンビエント ディスプレイで現在再生されている音楽が表示されます。

Googleの最新 Pixel 2 および Pixel 2 XL フラッグシップモデルには、「Now Playing」と呼ばれる素晴らしい新機能があります。 ソフトウェア、ハードウェア、機械学習を組み合わせて使用​​する Pixel 2 は、オフライン データベースを使用して バックグラウンドで再生されている何万もの曲を識別する. その後、それらの曲がデバイスのロック画面に常に表示されるか、進行中の通知として表示されます。 この機能は机上では奇抜に思えますが、実際に使ってみると、非常にうまく機能することがわかりました。 そうは言っても、この種の機能は誰もが好むものではないため、XDA 認定貢献者 クイニー899 というアプリを思いつきました アンビエントロック画面音楽 これにより、次のことが可能になります 現在再生中の曲の名前とアーティストを表示します デバイス上の通常再生中のテキストが表示される場所。

上のビデオでわかるように、開発者はアプリを有効にして、Google Play Music から曲の再生を開始します。 ロック画面が表示されると、通常は再生中機能が曲を認識したときに挿入するテキストが表示される場所の下部に、現在再生中の曲が表示されます。

アプリケーション Pixel 2/2 XL でのみ動作します これは、対応するインテント レシーバーが Pixel 2 に存在する SystemUIGoogle アプリでのみ使用できるインテントを送信するためです。 さらに、アプリケーションは、 root アクセスが必要です 機能するために。 アプリケーションは、以下のリンクにある XDA Labs からダウンロードできます。

[appbox xda com.kieronquinn.app.ambientlsmusic]

それだけではありません 無料、しかしそれはまた完全に 広告なし 同じように。 Google Play Music、Spotify、YouTube Redなど、ほぼすべての音楽アプリの曲名/アーティストの表示をサポートしています。 アプリをブラックリストに登録して、アンビエント ディスプレイにテキストを表示しないようにすることもできます。 最後に、このアプリでは、アンビエント ディスプレイに表示されるテキストをダブルタップして、音楽アプリを起動することもできます。

これは、Now Playing 機能と競合する可能性がありますが、必ずしもそれを置き換えるものではないことに注意してください。 これと同時に Now Playing が有効になり、Now Playing が有効になっているときに音楽を聴いている場合 アクティブに曲を検出すると、SystemUI にインテントを送信したものがアンビエントに表示されます。 画面。 いずれにせよ、Now Playing では検出された曲に関係なく通知が表示されるため、アンビエント ロック画面ミュージックを使用している場合でも、この機能を見逃すことはありません。


アンビエントロック画面音楽の仕組み

意図

前述したように、このアプリケーションは、SystemUIGoogle アプリケーションにインテントを送信することで機能します。 Quinny899 のアプリでは、これはインテントの送信を担当するコードです。

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");

これを少し分解してみましょう。 このインテントのアクションは「com.google.android.ambientindication.action.AMBIENT_INDICATION_SHOW" そして、それと一緒に送信できるいくつかのインテント エクストラが含まれています。

最初のおまけは「」com.google.android.ambientindication.extra.VERSION" これは現在、整数値 1 のみをとります。 次の番外編は「com.google.android.ambientindication.extra.TEXTここで、アンビエント ディスプレイのロック画面に表示する文字列を設定します。 おまけ3つ目は「com.google.android.ambientindication.extra.OPEN_INTENT" これは、テキストをダブルタップすると開く PendingIntent を受け入れます。 Quinny899 は、音楽を再生しているアプリケーションやピッカーを開くように PendingIntent を設定しました。 android.intent.action.MUSIC_PLAYER.

最後に、このインテントを送信するには、呼び出し側アプリに権限が必要です。com.google.android.ambientindication.permission.AMBIENT_INDICATIONこの権限は、signature|privileged として定義されているため、このアプリには root アクセスが必要です。

これを自分でテストしたい場合は、root 化されたターミナルまたは ADB シェル セッションを開いて、次のコマンドを入力します。

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

これにより、アンビエント ディスプレイに「hello world」というテキストが表示されます。 ただし、このコマンドは PendingIntent を設定しないため、ダブルクリックすることはできません。

ソングを表示する

アプリには、再生中の曲をキャプチャする 2 つの方法があります。 1 つ目は MediaController を使用する方法で、アプリを通知リスナーとしてバインドする必要があります。 (ただし、実際には、アプリが現在再生中のメッセージを読み取るために通知を傍受しているという意味ではありません) 歌)。 2 つ目は、通知リスナーを必要としないブロードキャスト レシーバーを経由する方法です (したがって、通知リスナーを消費します) メモリが少ない)ただし、一部の音楽アプリはこのアプリが設定されているというブロードキャスト インテントを送信しないため、互換性が低くなります。 のために。

その他の用途

これと同じインテントを使用して、アンビエント ディスプレイに任意のテキストを送信するようにアプリまたは Tasker を設定できます。 これにより、見たいものに完全に依存する新しいカスタマイズ オプションが開かれます。 たとえば、音楽の代わりに天気を表示させることができます。