티스토리 뷰
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() 등을 호출한다.
'Mobile > Android' 카테고리의 다른 글
[Android] AndroidStudio build setting (0) | 2016.07.26 |
---|---|
[Android] MultiDex 적용 (0) | 2016.07.26 |
[Android] NotificationCompat + 5.0 (0) | 2016.07.26 |
[Android] JobService (0) | 2016.07.26 |
[Android]TextBold 적용 (0) | 2016.07.12 |
- Total
- Today
- Yesterday
- Linux
- github
- centos8
- MySQL
- Xcode
- cocoapods
- ubuntu
- Python
- tomcat
- docker
- Codable
- php
- Java
- Spring
- war
- Kotlin
- CentOS
- intellij
- Gradle
- enum
- nodejs
- ios
- SWIFT
- Windows
- golang
- go
- rxswift
- android
- git
- windows10
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |