Interface SessionCallbackBuilder.AllowedCommandProvider
-
- All Known Implementing Classes:
SessionCallbackBuilder.DefaultAllowedCommandProvider
- Enclosing class:
- SessionCallbackBuilder
public static interface SessionCallbackBuilder.AllowedCommandProviderProvides allowed commands forMediaController.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanacceptConnection(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo)Called to query whether to allow connection from the controller.androidx.media2.session.SessionCommandGroupgetAllowedCommands(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo, androidx.media2.session.SessionCommandGroup baseAllowedSessionCommands)Called to query allowed commands in following cases: AMediaControllerrequests to connect, and allowed commands is required to tell initial allowed commands.intonCommandRequest(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo, androidx.media2.session.SessionCommand command)Called when aMediaControllerhas called an API that controlsSessionPlayerset to theMediaSession.
-
-
-
Method Detail
-
acceptConnection
boolean acceptConnection(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo)Called to query whether to allow connection from the controller.If it returns
trueto accept connection, thengetAllowedCommands(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommandGroup)will be immediately followed to return initial allowed command.Prefer use
SessionCallbackBuilder.PostConnectCallbackfor any extra initialization about controller, where controller is connected and session can send commands to the controller.- Parameters:
session- The media session.controllerInfo- TheMediaSession.ControllerInfofor the controller that is requesting connect.- Returns:
trueto accept connection.falseotherwise.
-
getAllowedCommands
androidx.media2.session.SessionCommandGroup getAllowedCommands(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo, androidx.media2.session.SessionCommandGroup baseAllowedSessionCommands)Called to query allowed commands in following cases:- A
MediaControllerrequests to connect, and allowed commands is required to tell initial allowed commands. - Underlying
SessionPlayerstate changes, and allowed commands may be updated viaMediaSession.setAllowedCommands(androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommandGroup).
The provided
baseAllowedSessionCommandis built automatically based on the state of theSessionPlayer,SessionCallbackBuilder.RatingCallback,SessionCallbackBuilder.MediaItemProvider,SessionCallbackBuilder.CustomCommandProvider, andSessionCallbackBuilder.SkipCallbackso may be a useful starting point for any required customizations.- Parameters:
session- The media session.controllerInfo- TheMediaSession.ControllerInfofor the controller for which allowed commands are being queried.baseAllowedSessionCommands- Base allowed session commands for customization.- Returns:
- The allowed commands for the controller.
- See Also:
MediaSession.SessionCallback.onConnect(MediaSession, ControllerInfo)
- A
-
onCommandRequest
int onCommandRequest(androidx.media2.session.MediaSession session, androidx.media2.session.MediaSession.ControllerInfo controllerInfo, androidx.media2.session.SessionCommand command)Called when aMediaControllerhas called an API that controlsSessionPlayerset to theMediaSession.- Parameters:
session- The media session.controllerInfo- AMediaSession.ControllerInfothat needs allowed command update.command- ASessionCommandfrom the controller.- Returns:
- A session result code defined in
SessionResult. - See Also:
MediaSession.SessionCallback.onCommandRequest(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommand)
-
-