Информация о треке песни в приложении Google Play Music

Я хочу, чтобы название песни, имя исполнителя и название альбома воспроизводилось в Google Play Music.

BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context arg0, Intent intent) {
        String track = intent.getStringExtra("track");
        String artist = intent.getStringExtra("artist");
        String album = intent.getStringExtra("album");
        songName.setText(track);
        artistName.setText(artist);
        albumName.setText(album);
    }
};

private void registerSongTrackReceiver() {
    IntentFilter iF = new IntentFilter();

    iF.addAction("com.android.music.playstatechanged");  
    iF.addAction("com.android.music.metachanged");
    iF.addAction("com.sec.android.app.music.playstatechanged");
    iF.addAction("com.sec.android.app.music.metachanged");
    iF.addAction("com.miui.player.metachanged");
    iF.addAction("com.htc.music.metachanged");
    iF.addAction("com.nullsoft.winamp.metachanged");
    iF.addAction("com.real.IMP.metachanged");
    iF.addAction("com.rdio.android.metachanged");
    registerReceiver(mReceiver, iF);
}

Я использую приведенный выше код. Я зарегистрировал этот приемник для получения названия песни. Он дает название стандартного музыкального проигрывателя по умолчанию, когда я использую Google Play Music.


person user2231938    schedule 10.09.2014    source источник
comment
Можете ли вы показать больше кода? Вся ваша деятельность?   -  person jesses.co.tt    schedule 10.09.2014


Ответы (1)


наконец, я получил решение, используя класс RemoteController. Теперь я получаю информацию о треке каждого музыкального проигрывателя.

http://developer.android.com/reference/android/media/RemoteController.html

Вот пример реализации

https://github.com/DrBreen/RemoteControllerExample/tree/master/src/com/woodblockwithoutco/remotecontrollerexample

person user2231938    schedule 14.01.2015
comment
Привет, у вас есть какое-нибудь решение для старых API, поскольку NotificationListenerService был представлен в Lollipop? - person gaurav jain; 26.07.2015
comment
Не для старых API. Для более старой версии ниже KITKAT вам необходимо использовать широковещательный приемник, как уже упоминалось, но он не работает со всеми музыкальными проигрывателями. Для Kitkat вы можете использовать класс RemoteController, а для LOLLIPOP используйте класс MediaController, потому что RemoteController устарел. - person user2231938; 27.07.2015
comment
Спасибо за информацию. Поскольку около 50% устройств по-прежнему работают ниже KitKat (API ‹ 19), я пропущу это для всех API, чтобы обеспечить согласованность между всеми API. - person gaurav jain; 27.07.2015