最近、音楽アプリ Spotify から現在の曲を再生する方法についての質問が投稿されましたが、これを行う簡単な方法はないようです。
少なくとも 4.0+ の Android ロック画面は、現在の曲を表示し、Spotify を含むほぼすべての音楽プレーヤーで動作します。だから私の質問は、ロック画面がこの情報をどのように取得するのですか?
最近、音楽アプリ Spotify から現在の曲を再生する方法についての質問が投稿されましたが、これを行う簡単な方法はないようです。
少なくとも 4.0+ の Android ロック画面は、現在の曲を表示し、Spotify を含むほぼすべての音楽プレーヤーで動作します。だから私の質問は、ロック画面がこの情報をどのように取得するのですか?
Android 4.0 および 4.1 では、表示されているロック画面の部分を「リモコン」と呼びます。呼び出しregisterRemoteControlClient()
て情報を提供できます。
Android 4.2 以降では、代わりに独自のロック画面対応アプリ ウィジェットを作成できます。
ブロードキャストレシーバーを使用して、ブロードキャスト レシーバーを作成し、マニフェストでそのフィルターを定義できます。次に、このブロードキャストを送信するすべての音楽アプリケーションが、アプリから送信された情報とともに onReceive メソッドをトリガーします。
編集:
Intent intent = new Intent("com.android.music.playstatechanged");
intent.putExtra("playing", (mState & FLAG_PLAYING) != 0);
if (song != null) {
intent.putExtra("track", song.title);
intent.putExtra("album", song.album);
intent.putExtra("artist", song.artist);
intent.putExtra("songid", song.id);
intent.putExtra("albumid", song.albumId);
}
sendBroadcast(intent);
これは、ブロードキャストを送信するために使用されるストック プレーヤーのコードです。ブロードキャスト レシーバーを調べると、必要なデータを取得する方法がわかります。
また、spotify 用のフィルター、AFIK を見つける必要があります。これは soptify で機能します。「com.android.music.metachanged」またはこちらをご覧くださいhttp://pastebin.com/ukfPnZwg