[Android] RemoteControlClient의 폐기로 인한 Notification
5.0에서 RemoteControlClient의 폐기가 되었다.
그래서 분기가 필요하게 되고, Notification에 노출할 경우에는 다음과 같은 방식으로 처리하여야 한다.
Notification.Builder builder = new Notification.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("TITLE")
.setContentText("MESSAGE")
.setDeleteIntent(pendingIntent)
.setStyle(new Notification.MediaStyle());
이후에 다음과 같이 구현을 하여준다.
mManager = (MediaSessionManager) getSystemService(Context.MEDIA_SESSION_SERVICE);
mSession = mManager.createSession("test session");
mController = MediaController.fromToken(mSession.getSessionToken());
세션의 TransportControlsCallback을 등록하고, 각 상황에 따라 다른 노티피케이션을 생성하도록 onPlay, onPause 등의 메소드를 오버라이드한다.
오버라이딩할 메소드마다 개별적으로 노티피케이션을 설정하고 띄워야 한다.
예를 들어 onPlay 메소드는 재생과 관련된 노티피케이션을 띄워야 한다.
mSession.addTransportControlsCallback(new MediaSession.TransportControlsCallback() {
@Override
public void onPlay() {}
@Override
public void onPause() {}
}
노티피케이션의 액션을 다른 서비스로 연결시키고 해당 서비스에서 mController.getTransportControls().play() 등을 호출한다.