2014-10-20 9 views
8

Voglio sostituire la mia classe Android RemoteControlClient nella mia applicazione con una nuova utilizzando MediaSession, ma che non funziona con il livello API < 21, MediaSessionCompat sembra funzionare senza arrestare i vecchi dispositivi, ma non ci sono più ARTWORK o informazioni sulle canzoni sul LockScreen visualizzato ...Come utilizzare MediaSessionCompat e mantenere la retrocompatibilità con RemoteControlClient?

Qualsiasi snippet o informazioni per me?

Grazie a tutti!

risposta

11

A partire dalla revisione 22 della libreria Support-v4, lo source code for MediaSessionCompat mostra che ora registrerà automaticamente e utilizzerà uno RemoteControlClient nei dispositivi API 14-20 prima di passare a MediaSession su dispositivi API21 +.

+5

Questo sembra davvero controintuitivo. Qual è il motivo dell'utilizzo di MediaSessionCompat? – tokudu

+6

Invece di proteggere ogni chiamata con una dichiarazione 'Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP' if, puoi usare direttamente' MediaSessionCompat'. Le alternative di non supportare affatto MediaSession (che porta a un'esperienza non ottimale per quella che sarà una percentuale crescente di utenti) o di scrivere codice soggetto a errori (manca solo una singola istruzione if causerebbe il crash della tua app) non sono pratiche di codifica sostenibili . – ianhanniballake

+0

@ianhanniballake Grazie, codice in elaborazione! – anisite

Problemi correlati