Here's the part of code that deal with MediaSession of my actual MediaPlayerService class on Android (API Level 30):
@Override public void onCreate() { super.onCreate();
Код: Выделить всё
mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioAttributes(new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build()); mediaSession = new MediaSessionCompat(this, TAG); mediaSession.setCallback(new MediaSessionCallback()); mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); playbackStateBuilder = new PlaybackStateCompat.Builder() .setActions(PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS | PlaybackStateCompat.ACTION_SKIP_TO_NEXT); mediaSession.setPlaybackState(playbackStateBuilder.build()); mediaSession.setActive(true); } @Override public void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { mediaPlayer.release(); } if (mediaSession != null) { mediaSession.release(); } } private class MediaSessionCallback extends MediaSessionCompat.Callback { @Override public void onPlay() { super.onPlay(); play(); } @Override public void onPause() { super.onPause(); pause(); } @Override public void onSkipToNext() { super.onSkipToNext(); playSong(1); } @Override public void onSkipToPrevious() { super.onSkipToPrevious(); playSong(-1); } }
What I'd like to do is to intercept the touch of my Car Display (where the song/artist information are showed, so to speak).
Somethinks like "touch -> trigger a method on my App".
How can I achieve this? Is it possible? Thanks
Источник: https://stackoverflow.com/questions/781 ... n-external