TvInputService.Session
  public
  static
  
  abstract
  class
  TvInputService.Session
  
    extends Object
  
  
  
  
  
      implements
      
        KeyEvent.Callback
      
  
  
| java.lang.Object | |
| ↳ | android.media.tv.TvInputService.Session | 
Base class for derived classes to implement to provide a TV input session.
Summary
| Public constructors | |
|---|---|
| 
      Session(Context context)
      Creates a new Session. | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        void | 
      layoutSurface(int left, int top, int right, int bottom)
      Assigns a size and position to the surface passed in  | 
| 
        
        
        
        
        
        void | 
      notifyAdBufferConsumed(AdBuffer buffer)
      Notifies the advertisement buffer is consumed. | 
| 
        
        
        
        
        
        void | 
      notifyAdResponse(AdResponse response)
      Notifies response for advertisement. | 
| 
        
        
        
        
        
        void | 
      notifyAitInfoUpdated(AitInfo aitInfo)
      Informs the app that the AIT (Application Information Table) is updated. | 
| 
        
        
        
        
        
        void | 
      notifyAudioPresentationChanged(List<AudioPresentation> audioPresentations)
      Sends an updated list of all audio presentations available from a Next Generation Audio service. | 
| 
        
        
        
        
        
        void | 
      notifyAudioPresentationSelected(int presentationId, int programId)
      Sends the presentation and program IDs of the selected audio presentation. | 
| 
        
        
        
        
        
        void | 
      notifyAvailableSpeeds(float[] speeds)
      Informs the app available speeds for time-shifting. | 
| 
        
        
        
        
        
        void | 
      notifyBroadcastInfoResponse(BroadcastInfoResponse response)
      Notifies response for broadcast info. | 
| 
        
        
        
        
        
        void | 
      notifyChannelRetuned(Uri channelUri)
      Informs the application that the current channel is re-tuned for some reason and the session now displays the content from a new channel. | 
| 
        
        
        
        
        
        void | 
      notifyContentAllowed()
      Informs the application that the user is allowed to watch the current program content. | 
| 
        
        
        
        
        
        void | 
      notifyContentBlocked(TvContentRating rating)
      Informs the application that the current program content is blocked by parent controls. | 
| 
        
        
        
        
        
        void | 
      notifyCueingMessageAvailability(boolean available)
      Informs the application that cueing message is available or unavailable. | 
| 
        
        
        
        
        
        void | 
      notifySignalStrength(int strength)
      Notifies signal strength. | 
| 
        
        
        
        
        
        void | 
      notifyTimeShiftMode(int mode)
      Informs the app that the time shift mode is set or updated. | 
| 
        
        
        
        
        
        void | 
      notifyTimeShiftStatusChanged(int status)
      Informs the application that the time shift status is changed. | 
| 
        
        
        
        
        
        void | 
      notifyTrackSelected(int type, String trackId)
      Sends the type and ID of a selected track. | 
| 
        
        
        
        
        
        void | 
      notifyTracksChanged(List<TvTrackInfo> tracks)
      Sends the list of all audio/video/subtitle tracks. | 
| 
        
        
        
        
        
        void | 
      notifyTuned(Uri channelUri)
      Informs the application that this session has been tuned to the given channel. | 
| 
        
        
        
        
        
        void | 
      notifyTvMessage(int type, Bundle data)
      Sends the raw data from the received TV message as well as the type of message received. | 
| 
        
        
        
        
        
        void | 
      notifyVideoAvailable()
      Informs the application that the video is now available for watching. | 
| 
        
        
        
        
        
        void | 
      notifyVideoFreezeUpdated(boolean isFrozen)
      Informs the application that the video freeze state has been updated. | 
| 
        
        
        
        
        
        void | 
      notifyVideoUnavailable(int reason)
      Informs the application that the video became unavailable for some reason. | 
| 
        
        
        
        
        
        void | 
      onAdBufferReady(AdBuffer buffer)
      Called when an advertisement buffer is ready for playback. | 
| 
        
        
        
        
        
        void | 
      onAppPrivateCommand(String action, Bundle data)
      Processes a private command sent from the application to the TV input. | 
| 
        
        
        
        
        
        View | 
      onCreateOverlayView()
      Called when the application requests to create an overlay view. | 
| 
        
        
        
        
        
        boolean | 
      onGenericMotionEvent(MotionEvent event)
      Implement this method to handle generic motion events on the current input session. | 
| 
        
        
        
        
        
        boolean | 
      onKeyDown(int keyCode, KeyEvent event)
      Default implementation of  | 
| 
        
        
        
        
        
        boolean | 
      onKeyLongPress(int keyCode, KeyEvent event)
      Default implementation of
  | 
| 
        
        
        
        
        
        boolean | 
      onKeyMultiple(int keyCode, int count, KeyEvent event)
      Default implementation of
  | 
| 
        
        
        
        
        
        boolean | 
      onKeyUp(int keyCode, KeyEvent event)
      Default implementation of  | 
| 
        
        
        
        
        
        void | 
      onOverlayViewSizeChanged(int width, int height)
      Called when the size of the overlay view is changed by the application. | 
| 
        abstract
        
        
        
        
        void | 
      onRelease()
      Called when the session is released. | 
| 
        
        
        
        
        
        void | 
      onRemoveBroadcastInfo(int requestId)
      Called when broadcast info is removed. | 
| 
        
        
        
        
        
        void | 
      onRequestAd(AdRequest request)
      Called when advertisement request is received. | 
| 
        
        
        
        
        
        void | 
      onRequestBroadcastInfo(BroadcastInfoRequest request)
      Called when broadcast info is requested. | 
| 
        
        
        
        
        
        void | 
      onResumePlayback()
      Resumes playback of the Audio, Video, and CC streams. | 
| 
        
        
        
        
        
        boolean | 
      onSelectAudioPresentation(int presentationId, int programId)
      Selects an audio presentation. | 
| 
        
        
        
        
        
        boolean | 
      onSelectTrack(int type, String trackId)
      Selects a given track. | 
| 
        abstract
        
        
        
        
        void | 
      onSetCaptionEnabled(boolean enabled)
      Enables or disables the caption. | 
| 
        
        
        
        
        
        void | 
      onSetInteractiveAppNotificationEnabled(boolean enabled)
      Enables or disables interactive app notification. | 
| 
        abstract
        
        
        
        
        void | 
      onSetStreamVolume(float volume)
      Sets the relative stream volume of the current TV input session. | 
| 
        abstract
        
        
        
        
        boolean | 
      onSetSurface(Surface surface)
      Called when the application sets the surface. | 
| 
        
        
        
        
        
        void | 
      onSetTvMessageEnabled(int type, boolean enabled)
      Called when the application enables or disables the detection of the specified message type. | 
| 
        
        
        
        
        
        void | 
      onStopPlayback(int mode)
      Called when the application requests playback of the Audio, Video, and CC streams to be stopped, but the metadata should continue to be filtered. | 
| 
        
        
        
        
        
        void | 
      onSurfaceChanged(int format, int width, int height)
      Called after any structural changes (format or size) have been made to the surface passed
 in  | 
| 
        
        
        
        
        
        long | 
      onTimeShiftGetCurrentPosition()
      Returns the current position for time shifting, in milliseconds since the epoch. | 
| 
        
        
        
        
        
        long | 
      onTimeShiftGetStartPosition()
      Returns the start position for time shifting, in milliseconds since the epoch. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftPause()
      Called when the application requests to pause playback. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftPlay(Uri recordedProgramUri)
      Called when the application requests to play a given recorded TV program. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftResume()
      Called when the application requests to resume playback. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftSeekTo(long timeMs)
      Called when the application requests to seek to a specified time position. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftSetMode(int mode)
      Called when the application sets time shift mode. | 
| 
        
        
        
        
        
        void | 
      onTimeShiftSetPlaybackParams(PlaybackParams params)
      Called when the application sets playback parameters containing the speed and audio mode. | 
| 
        
        
        
        
        
        boolean | 
      onTouchEvent(MotionEvent event)
      Implement this method to handle touch screen motion events on the current input session. | 
| 
        
        
        
        
        
        boolean | 
      onTrackballEvent(MotionEvent event)
      Implement this method to handle trackball events on the current input session. | 
| 
        
        
        
        
        
        boolean | 
      onTune(Uri channelUri, Bundle params)
      Tunes to a given channel. | 
| 
        abstract
        
        
        
        
        boolean | 
      onTune(Uri channelUri)
      Tunes to a given channel. | 
| 
        
        
        
        
        
        void | 
      onTvAdSessionData(String type, Bundle data)
      Called when data from the linked  | 
| 
        
        
        
        
        
        void | 
      onTvMessage(int type, Bundle data)
      Called when a TV message is received | 
| 
        
        
        
        
        
        void | 
      onUnblockContent(TvContentRating unblockedRating)
      Requests to unblock the content according to the given rating. | 
| 
        
        
        
        
        
        void | 
      sendTvInputSessionData(String type, Bundle data)
      Sends data related to this session to corresponding linked
  | 
| 
        
        
        
        
        
        void | 
      setOverlayViewEnabled(boolean enable)
      Enables or disables the overlay view. | 
| Inherited methods | |
|---|---|
Public constructors
Session
public Session (Context context)
Creates a new Session.
| Parameters | |
|---|---|
| context | Context: The context of the application | 
Public methods
layoutSurface
public void layoutSurface (int left, 
                int top, 
                int right, 
                int bottom)Assigns a size and position to the surface passed in onSetSurface(Surface). The position
 is relative to the overlay view that sits on top of this surface.
| Parameters | |
|---|---|
| left | int: Left position in pixels, relative to the overlay view. | 
| top | int: Top position in pixels, relative to the overlay view. | 
| right | int: Right position in pixels, relative to the overlay view. | 
| bottom | int: Bottom position in pixels, relative to the overlay view. | 
See also:
notifyAdBufferConsumed
public void notifyAdBufferConsumed (AdBuffer buffer)
Notifies the advertisement buffer is consumed.
| Parameters | |
|---|---|
| buffer | AdBuffer: theAdBufferthat was consumed.
 This value cannot benull. | 
notifyAdResponse
public void notifyAdResponse (AdResponse response)
Notifies response for advertisement.
| Parameters | |
|---|---|
| response | AdResponse: advertisement response.
 This value cannot benull. | 
notifyAitInfoUpdated
public void notifyAitInfoUpdated (AitInfo aitInfo)
Informs the app that the AIT (Application Information Table) is updated.
This method should also be called when
 onSetInteractiveAppNotificationEnabled(boolean) is called to send the first AIT
 info.
| Parameters | |
|---|---|
| aitInfo | AitInfo: This value cannot benull. | 
notifyAudioPresentationChanged
public void notifyAudioPresentationChanged (List<AudioPresentation> audioPresentations)
Sends an updated list of all audio presentations available from a Next Generation Audio
 service. This is used by the framework to maintain the audio presentation information for
 a given track of TvTrackInfo.TYPE_AUDIO, which in turn is used by
 TvView.getAudioPresentations for the application to retrieve metadata for the
 current audio track. The TV input service must call this method as soon as the audio
 track presentation information becomes available or is updated. Note that in a case
 where a part of the information for the current track is updated, it is not necessary
 to create a new TvTrackInfo object with a different track ID.
| Parameters | |
|---|---|
| audioPresentations | List: A list of audio presentation information pertaining to the
 selected track.
 This value cannot benull. | 
notifyAudioPresentationSelected
public void notifyAudioPresentationSelected (int presentationId, 
                int programId)Sends the presentation and program IDs of the selected audio presentation. This is used
 to inform the application that a specific audio presentation is selected. The TV input
 service must call this method as soon as an audio presentation is selected either by
 default or in response to a call to onSelectTrack(int, String). The selected audio
 presentation ID for a currently selected audio track is maintained in the framework until
 the next call to this method even after the entire audio presentation list for the track
 is updated (but is reset when the session is tuned to a new channel), so care must be
 taken not to result in an obsolete track audio presentation ID.
| Parameters | |
|---|---|
| presentationId | int: The ID of the selected audio presentation for the current track. | 
| programId | int: The ID of the program providing the selected audio presentation. | 
See also:
notifyAvailableSpeeds
public void notifyAvailableSpeeds (float[] speeds)
Informs the app available speeds for time-shifting.
This should be called when time-shifting is enabled.
| Parameters | |
|---|---|
| speeds | float: An ordered array of playback speeds, expressed as values relative to the
               normal playback speed (1.0), at which the current content can be played as
               a time-shifted broadcast. This is an empty array if the supported playback
               speeds are unknown or the video/broadcast is not in time shift mode. If
               currently in time shift mode, this array will normally include at least
               the values 1.0 (normal speed) and 0.0 (paused).
 This value cannot benull. | 
See also:
notifyBroadcastInfoResponse
public void notifyBroadcastInfoResponse (BroadcastInfoResponse response)
Notifies response for broadcast info.
| Parameters | |
|---|---|
| response | BroadcastInfoResponse: broadcast info response.
 This value cannot benull. | 
notifyChannelRetuned
public void notifyChannelRetuned (Uri channelUri)
Informs the application that the current channel is re-tuned for some reason and the session now displays the content from a new channel. This is used to handle special cases such as when the current channel becomes unavailable, it is necessary to send the user to a certain channel or the user changes channel in some other way (e.g. by using a dedicated remote).
| Parameters | |
|---|---|
| channelUri | Uri: The URI of the new channel. | 
notifyContentAllowed
public void notifyContentAllowed ()
Informs the application that the user is allowed to watch the current program content.
Each TV input service is required to query the system whether the user is allowed to
 watch the current program before showing it to the user if the parental controls is
 enabled (i.e. TvInputManager.isParentalControlsEnabled() returns true). Whether the TV input
 service should block the content or not is determined by invoking
 TvInputManager.isRatingBlocked(TvContentRating)
 with the content rating for the current program. Then the TvInputManager makes a
 judgment based on the user blocked ratings stored in the secure settings and returns the
 result. If the rating in question turns out to be allowed by the user, the TV input
 service must call this method to notify the application that is permitted to show the
 content.
 
Each TV input service also needs to continuously listen to any changes made to the
 parental controls settings by registering a broadcast receiver to receive
 TvInputManager.ACTION_BLOCKED_RATINGS_CHANGED and
 TvInputManager.ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED and immediately
 reevaluate the current program with the new parental controls settings.
notifyContentBlocked
public void notifyContentBlocked (TvContentRating rating)
Informs the application that the current program content is blocked by parent controls.
Each TV input service is required to query the system whether the user is allowed to
 watch the current program before showing it to the user if the parental controls is
 enabled (i.e. TvInputManager.isParentalControlsEnabled() returns true). Whether the TV input
 service should block the content or not is determined by invoking
 TvInputManager.isRatingBlocked(TvContentRating)
 with the content rating for the current program or TvContentRating.UNRATED in
 case the rating information is missing. Then the TvInputManager makes a judgment
 based on the user blocked ratings stored in the secure settings and returns the result.
 If the rating in question turns out to be blocked, the TV input service must immediately
 block the content and call this method with the content rating of the current program to
 prompt the PIN verification screen.
 
Each TV input service also needs to continuously listen to any changes made to the
 parental controls settings by registering a broadcast receiver to receive
 TvInputManager.ACTION_BLOCKED_RATINGS_CHANGED and
 TvInputManager.ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED and immediately
 reevaluate the current program with the new parental controls settings.
| Parameters | |
|---|---|
| rating | TvContentRating: The content rating for the current TV program. Can beTvContentRating.UNRATED.
 This value cannot benull. | 
See also:
notifyCueingMessageAvailability
public void notifyCueingMessageAvailability (boolean available)
Informs the application that cueing message is available or unavailable.
The cueing message is used for digital program insertion, based on the standard ANSI/SCTE 35 2019r1.
| Parameters | |
|---|---|
| available | boolean:trueif cueing message is available;falseif it becomes
                  unavailable. | 
notifySignalStrength
public void notifySignalStrength (int strength)
Notifies signal strength.
| Parameters | |
|---|---|
| strength | int: Value isTvInputManager.SIGNAL_STRENGTH_LOST,TvInputManager.SIGNAL_STRENGTH_WEAK, orTvInputManager.SIGNAL_STRENGTH_STRONG | 
notifyTimeShiftMode
public void notifyTimeShiftMode (int mode)
Informs the app that the time shift mode is set or updated.
| Parameters | |
|---|---|
| mode | int: The current time shift mode. The value is one of the following:TvInputManager.TIME_SHIFT_MODE_OFF,TvInputManager.TIME_SHIFT_MODE_LOCAL,TvInputManager.TIME_SHIFT_MODE_NETWORK,TvInputManager.TIME_SHIFT_MODE_AUTO.
 Value isTvInputManager.TIME_SHIFT_MODE_OFF,TvInputManager.TIME_SHIFT_MODE_LOCAL,TvInputManager.TIME_SHIFT_MODE_NETWORK, orTvInputManager.TIME_SHIFT_MODE_AUTO | 
notifyTimeShiftStatusChanged
public void notifyTimeShiftStatusChanged (int status)
Informs the application that the time shift status is changed.
Prior to calling this method, the application assumes the status
 TvInputManager.TIME_SHIFT_STATUS_UNKNOWN. Right after the session is created, it
 is important to invoke the method with the status
 TvInputManager.TIME_SHIFT_STATUS_AVAILABLE if the implementation does support
 time shifting, or TvInputManager.TIME_SHIFT_STATUS_UNSUPPORTED otherwise. Failure
 to notifying the current status change immediately might result in an undesirable
 behavior in the application such as hiding the play controls.
 
If the status TvInputManager.TIME_SHIFT_STATUS_AVAILABLE is reported, the
 application assumes it can pause/resume playback, seek to a specified time position and
 set playback rate and audio mode. The implementation should override
 onTimeShiftPause(), onTimeShiftResume(), onTimeShiftSeekTo(long),
 onTimeShiftGetStartPosition(), onTimeShiftGetCurrentPosition() and
 onTimeShiftSetPlaybackParams(PlaybackParams).
| Parameters | |
|---|---|
| status | int: The current time shift status. Should be one of the followings.
 TvInputManager.TIME_SHIFT_STATUS_UNKNOWN,TvInputManager.TIME_SHIFT_STATUS_UNSUPPORTED,TvInputManager.TIME_SHIFT_STATUS_UNAVAILABLE, orTvInputManager.TIME_SHIFT_STATUS_AVAILABLE | 
notifyTrackSelected
public void notifyTrackSelected (int type, 
                String trackId)Sends the type and ID of a selected track. This is used to inform the application that a
 specific track is selected. The TV input service must call this method as soon as a track
 is selected either by default or in response to a call to onSelectTrack(int, String). The
 selected track ID for a given type is maintained in the framework until the next call to
 this method even after the entire track list is updated (but is reset when the session is
 tuned to a new channel), so care must be taken not to result in an obsolete track ID.
| Parameters | |
|---|---|
| type | int: The type of the selected track. The type can beTvTrackInfo.TYPE_AUDIO,TvTrackInfo.TYPE_VIDEOorTvTrackInfo.TYPE_SUBTITLE. | 
| trackId | String: The ID of the selected track. | 
See also:
notifyTracksChanged
public void notifyTracksChanged (List<TvTrackInfo> tracks)
Sends the list of all audio/video/subtitle tracks. The is used by the framework to
 maintain the track information for a given session, which in turn is used by
 TvView.getTracks for the application to retrieve metadata for a given track type.
 The TV input service must call this method as soon as the track information becomes
 available or is updated. Note that in a case where a part of the information for a
 certain track is updated, it is not necessary to create a new TvTrackInfo object
 with a different track ID.
| Parameters | |
|---|---|
| tracks | List: A list which includes track information. | 
notifyTuned
public void notifyTuned (Uri channelUri)
Informs the application that this session has been tuned to the given channel.
| Parameters | |
|---|---|
| channelUri | Uri: The URI of the tuned channel.
 This value cannot benull. | 
notifyTvMessage
public void notifyTvMessage (int type, 
                Bundle data)Sends the raw data from the received TV message as well as the type of message received.
| Parameters | |
|---|---|
| type | int: The of message that was sent, such asTvInputManager.TV_MESSAGE_TYPE_WATERMARKValue isTvInputManager.TV_MESSAGE_TYPE_WATERMARK,TvInputManager.TV_MESSAGE_TYPE_CLOSED_CAPTION, orTvInputManager.TV_MESSAGE_TYPE_OTHER | 
| data | Bundle: The raw data of the message. The bundle keys are:TvInputManager.TV_MESSAGE_KEY_STREAM_ID,TvInputManager.TV_MESSAGE_KEY_GROUP_ID,TvInputManager.TV_MESSAGE_KEY_SUBTYPE,TvInputManager.TV_MESSAGE_KEY_RAW_DATA.
             SeeTvInputManager.TV_MESSAGE_KEY_SUBTYPEfor more information on
             how to parse this data.
 This value cannot benull. | 
notifyVideoAvailable
public void notifyVideoAvailable ()
Informs the application that the video is now available for watching. Video is blocked until this method is called.
The TV input service must call this method as soon as the content rendered onto its
 surface is ready for viewing. This method must be called each time onTune(Uri)
 is called.
See also:
notifyVideoFreezeUpdated
public void notifyVideoFreezeUpdated (boolean isFrozen)
Informs the application that the video freeze state has been updated.
When true, the video is frozen on the last frame but audio playback remains
 active.
| Parameters | |
|---|---|
| isFrozen | boolean: Whether or not the video is frozen | 
notifyVideoUnavailable
public void notifyVideoUnavailable (int reason)
Informs the application that the video became unavailable for some reason. This is primarily used to signal the application to block the screen not to show any intermittent video artifacts.
See also:
onAdBufferReady
public void onAdBufferReady (AdBuffer buffer)
Called when an advertisement buffer is ready for playback.
| Parameters | |
|---|---|
| buffer | AdBuffer: TheAdBufferthat became ready for playback.
 This value cannot benull. | 
onAppPrivateCommand
public void onAppPrivateCommand (String action, Bundle data)
Processes a private command sent from the application to the TV input. This can be used to provide domain-specific features that are only known between certain TV inputs and their clients.
| Parameters | |
|---|---|
| action | String: Name of the command to be performed. This must be a scoped name,
            i.e. prefixed with a package name you own, so that different developers will
            not create conflicting commands.
 This value cannot benull. | 
| data | Bundle: Any data to include with the command. | 
onCreateOverlayView
public View onCreateOverlayView ()
Called when the application requests to create an overlay view. Each session implementation can override this method and return its own view.
| Returns | |
|---|---|
| View | a view attached to the overlay window | 
onGenericMotionEvent
public boolean onGenericMotionEvent (MotionEvent event)
Implement this method to handle generic motion events on the current input session.
| Parameters | |
|---|---|
| event | MotionEvent: The motion event being received. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
See also:
onKeyDown
public boolean onKeyDown (int keyCode, 
                KeyEvent event)Default implementation of KeyEvent.Callback.onKeyDown(): always returns false (doesn't handle the event).
 
Override this to intercept key down events before they are processed by the application. If you return true, the application will not process the event itself. If you return false, the normal application processing will occur as if the TV input had not seen the event at all.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
onKeyLongPress
public boolean onKeyLongPress (int keyCode, 
                KeyEvent event)Default implementation of
 KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).
 
Override this to intercept key long press events before they are processed by the application. If you return true, the application will not process the event itself. If you return false, the normal application processing will occur as if the TV input had not seen the event at all.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
onKeyMultiple
public boolean onKeyMultiple (int keyCode, 
                int count, 
                KeyEvent event)Default implementation of
 KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).
 
Override this to intercept special key multiple events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the TV input had not seen the event at all.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| count | int: The number of times the action was made. | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
onKeyUp
public boolean onKeyUp (int keyCode, 
                KeyEvent event)Default implementation of KeyEvent.Callback.onKeyUp(): always returns false (doesn't handle the event).
 
Override this to intercept key up events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the TV input had not seen the event at all.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
onOverlayViewSizeChanged
public void onOverlayViewSizeChanged (int width, 
                int height)Called when the size of the overlay view is changed by the application.
This is always called at least once when the session is created regardless of whether
 the overlay view is enabled or not. The overlay view size is the same as the containing
 TvView. Note that the size of the underlying surface can be different if the
 surface was changed by calling layoutSurface(int, int, int, int).
| Parameters | |
|---|---|
| width | int: The width of the overlay view. | 
| height | int: The height of the overlay view. | 
onRelease
public abstract void onRelease ()
Called when the session is released.
onRemoveBroadcastInfo
public void onRemoveBroadcastInfo (int requestId)
Called when broadcast info is removed.
| Parameters | |
|---|---|
| requestId | int | 
onRequestAd
public void onRequestAd (AdRequest request)
Called when advertisement request is received.
| Parameters | |
|---|---|
| request | AdRequest: advertisement request received
 This value cannot benull. | 
onRequestBroadcastInfo
public void onRequestBroadcastInfo (BroadcastInfoRequest request)
Called when broadcast info is requested.
| Parameters | |
|---|---|
| request | BroadcastInfoRequest: broadcast info request
 This value cannot benull. | 
onResumePlayback
public void onResumePlayback ()
Resumes playback of the Audio, Video, and CC streams.
 Note that this is different form ERROR(/#timeShiftResume()) as this is intended to be
 used after stopping playback. This is used to resume playback from the current position
 in the live broadcast.
onSelectAudioPresentation
public boolean onSelectAudioPresentation (int presentationId, 
                int programId)Selects an audio presentation.
On successfully selecting the audio presentation,
 notifyAudioPresentationSelected(int, int) is invoked to provide updated information about
 the selected audio presentation to applications.
| Parameters | |
|---|---|
| presentationId | int: The ID of the audio presentation to select. | 
| programId | int: The ID of the program providing the selected audio presentation. | 
| Returns | |
|---|---|
| boolean | trueif the audio presentation selection was successful,falseotherwise. | 
onSelectTrack
public boolean onSelectTrack (int type, 
                String trackId)Selects a given track.
If this is done successfully, the implementation should call
 notifyTrackSelected(int, String) to help applications maintain the up-to-date list of the
 selected tracks.
| Parameters | |
|---|---|
| type | int: The type of the track to select. The type can beTvTrackInfo.TYPE_AUDIO,TvTrackInfo.TYPE_VIDEOorTvTrackInfo.TYPE_SUBTITLE. | 
| trackId | String: The ID of the track to select.nullmeans to unselect the current
            track for a given type. | 
| Returns | |
|---|---|
| boolean | trueif the track selection was successful,falseotherwise. | 
See also:
onSetCaptionEnabled
public abstract void onSetCaptionEnabled (boolean enabled)
Enables or disables the caption.
The locale for the user's preferred captioning language can be obtained by calling
 CaptioningManager.getLocale().
| Parameters | |
|---|---|
| enabled | boolean:trueto enable,falseto disable. | 
See also:
onSetInteractiveAppNotificationEnabled
public void onSetInteractiveAppNotificationEnabled (boolean enabled)
Enables or disables interactive app notification.
This method enables or disables the event detection from the corresponding TV input. When it's enabled, the TV input service detects events related to interactive app, such as AIT (Application Information Table) and sends to TvView or the linked TV interactive app service.
| Parameters | |
|---|---|
| enabled | boolean:trueto enable,falseto disable. | 
onSetStreamVolume
public abstract void onSetStreamVolume (float volume)
Sets the relative stream volume of the current TV input session.
The implementation should honor this request in order to handle audio focus changes or
 mute the current session when multiple sessions, possibly from different inputs are
 active. If the method has not yet been called, the implementation should assume the
 default value of 1.0f.
| Parameters | |
|---|---|
| volume | float: A volume value between0.0fto1.0f.
 Value is between 0.0f and 1.0f inclusive | 
onSetSurface
public abstract boolean onSetSurface (Surface surface)
Called when the application sets the surface.
The TV input service should render video onto the given surface. When called with
 null, the input service should immediately free any references to the
 currently set surface and stop using it.
| Parameters | |
|---|---|
| surface | Surface: The surface to be used for video rendering. Can benull. | 
| Returns | |
|---|---|
| boolean | trueif the surface was set successfully,falseotherwise. | 
onSetTvMessageEnabled
public void onSetTvMessageEnabled (int type, 
                boolean enabled)Called when the application enables or disables the detection of the specified message type.
| Parameters | |
|---|---|
| type | int: The type of message received, such asTvInputManager.TV_MESSAGE_TYPE_WATERMARKValue isTvInputManager.TV_MESSAGE_TYPE_WATERMARK,TvInputManager.TV_MESSAGE_TYPE_CLOSED_CAPTION, orTvInputManager.TV_MESSAGE_TYPE_OTHER | 
| enabled | boolean:trueif TV message detection is enabled,falseotherwise. | 
onStopPlayback
public void onStopPlayback (int mode)
Called when the application requests playback of the Audio, Video, and CC streams to be stopped, but the metadata should continue to be filtered.
The metadata that will continue to be filtered includes the PSI (Program specific information) and SI (Service Information), part of ISO/IEC 13818-1.
 Note that this is different form ERROR(/#timeShiftPause()) as should release the
 stream, making it impossible to resume from this position again.
| Parameters | |
|---|---|
| mode | int: Value isTvInteractiveAppService.COMMAND_PARAMETER_VALUE_STOP_MODE_BLANK, orTvInteractiveAppService.COMMAND_PARAMETER_VALUE_STOP_MODE_FREEZE | 
onSurfaceChanged
public void onSurfaceChanged (int format, 
                int width, 
                int height)Called after any structural changes (format or size) have been made to the surface passed
 in onSetSurface(Surface). This method is always called at least once, after
 onSetSurface(Surface) is called with non-null surface.
| Parameters | |
|---|---|
| format | int: The new PixelFormat of the surface. | 
| width | int: The new width of the surface. | 
| height | int: The new height of the surface. | 
onTimeShiftGetCurrentPosition
public long onTimeShiftGetCurrentPosition ()
Returns the current position for time shifting, in milliseconds since the epoch.
 Returns TvInputManager.TIME_SHIFT_INVALID_TIME if the position is unknown at the
 moment.
 
The current position for time shifting is the same as the current position of
 playback. It should be equal to or greater than the start position reported by
 onTimeShiftGetStartPosition(). When playback is completed, the current position
 should stay where the playback ends, in other words, the returned value of this mehtod
 should be equal to the start position plus the duration of the program.
| Returns | |
|---|---|
| long | |
onTimeShiftGetStartPosition
public long onTimeShiftGetStartPosition ()
Returns the start position for time shifting, in milliseconds since the epoch.
 Returns TvInputManager.TIME_SHIFT_INVALID_TIME if the position is unknown at the
 moment.
 
The start position for time shifting indicates the earliest possible time the user can seek to. Initially this is equivalent to the time when the implementation starts recording. Later it may be adjusted because there is insufficient space or the duration of recording is limited by the implementation. The application does not allow the user to seek to a position earlier than the start position.
For playback of a recorded program initiated by onTimeShiftPlay(android.net.Uri), the
 start position should be 0 and does not change.
| Returns | |
|---|---|
| long | |
onTimeShiftPause
public void onTimeShiftPause ()
Called when the application requests to pause playback.
onTimeShiftPlay
public void onTimeShiftPlay (Uri recordedProgramUri)
Called when the application requests to play a given recorded TV program.
| Parameters | |
|---|---|
| recordedProgramUri | Uri: The URI of a recorded TV program. | 
onTimeShiftResume
public void onTimeShiftResume ()
Called when the application requests to resume playback.
onTimeShiftSeekTo
public void onTimeShiftSeekTo (long timeMs)
Called when the application requests to seek to a specified time position. Normally, the position is given within range between the start and the current time, inclusively. The implementation is expected to seek to the nearest time position if the given position is not in the range.
| Parameters | |
|---|---|
| timeMs | long: The time position to seek to, in milliseconds since the epoch. | 
onTimeShiftSetMode
public void onTimeShiftSetMode (int mode)
Called when the application sets time shift mode.
| Parameters | |
|---|---|
| mode | int: The time shift mode. The value is one of the following:TvInputManager.TIME_SHIFT_MODE_OFF,TvInputManager.TIME_SHIFT_MODE_LOCAL,TvInputManager.TIME_SHIFT_MODE_NETWORK,TvInputManager.TIME_SHIFT_MODE_AUTO.
 Value isTvInputManager.TIME_SHIFT_MODE_OFF,TvInputManager.TIME_SHIFT_MODE_LOCAL,TvInputManager.TIME_SHIFT_MODE_NETWORK, orTvInputManager.TIME_SHIFT_MODE_AUTO | 
onTimeShiftSetPlaybackParams
public void onTimeShiftSetPlaybackParams (PlaybackParams params)
Called when the application sets playback parameters containing the speed and audio mode.
Once the playback parameters are set, the implementation should honor the current settings until the next tune request. Pause/resume/seek request does not reset the parameters previously set.
| Parameters | |
|---|---|
| params | PlaybackParams: The playback params. | 
onTouchEvent
public boolean onTouchEvent (MotionEvent event)
Implement this method to handle touch screen motion events on the current input session.
| Parameters | |
|---|---|
| event | MotionEvent: The motion event being received. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
See also:
onTrackballEvent
public boolean onTrackballEvent (MotionEvent event)
Implement this method to handle trackball events on the current input session.
| Parameters | |
|---|---|
| event | MotionEvent: The motion event being received. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to
         be handled by the next receiver, returnfalse. | 
See also:
onTune
public boolean onTune (Uri channelUri, Bundle params)
Tunes to a given channel. Override this method in order to handle domain-specific features that are only known between certain TV inputs and their clients.
The default implementation calls onTune(android.net.Uri).
| Parameters | |
|---|---|
| channelUri | Uri: The URI of the channel. | 
| params | Bundle: Domain-specific data for this tune request. Keys must be a scoped
            name, i.e. prefixed with a package name you own, so that different developers
            will not create conflicting keys. | 
| Returns | |
|---|---|
| boolean | trueif the tuning was successful,falseotherwise. | 
onTune
public abstract boolean onTune (Uri channelUri)
Tunes to a given channel.
No video will be displayed until notifyVideoAvailable() is called.
 Also, notifyVideoUnavailable(int) should be called when the TV input cannot
 continue playing the given channel.
| Parameters | |
|---|---|
| channelUri | Uri: The URI of the channel. | 
| Returns | |
|---|---|
| boolean | trueif the tuning was successful,falseotherwise. | 
onTvAdSessionData
public void onTvAdSessionData (String type, Bundle data)
Called when data from the linked TvAdService is received.
| Parameters | |
|---|---|
| type | String: the type of the data
 This value cannot benull.
 Value isTvAdManager.SESSION_DATA_TYPE_AD_REQUEST,TvAdManager.SESSION_DATA_TYPE_AD_BUFFER_READY,TvAdManager.SESSION_DATA_TYPE_BROADCAST_INFO_REQUEST, orTvAdManager.SESSION_DATA_TYPE_REMOVE_BROADCAST_INFO_REQUEST | 
| data | Bundle: a bundle contains the data received
 This value cannot benull. | 
onTvMessage
public void onTvMessage (int type, 
                Bundle data)Called when a TV message is received
| Parameters | |
|---|---|
| type | int: The type of message received, such asTvInputManager.TV_MESSAGE_TYPE_WATERMARKValue isTvInputManager.TV_MESSAGE_TYPE_WATERMARK,TvInputManager.TV_MESSAGE_TYPE_CLOSED_CAPTION, orTvInputManager.TV_MESSAGE_TYPE_OTHER | 
| data | Bundle: The raw data of the message. The bundle keys are:TvInputManager.TV_MESSAGE_KEY_STREAM_ID,TvInputManager.TV_MESSAGE_KEY_GROUP_ID,TvInputManager.TV_MESSAGE_KEY_SUBTYPE,TvInputManager.TV_MESSAGE_KEY_RAW_DATA.
             SeeTvInputManager.TV_MESSAGE_KEY_SUBTYPEfor more information on
             how to parse this data.
 This value cannot benull. | 
onUnblockContent
public void onUnblockContent (TvContentRating unblockedRating)
Requests to unblock the content according to the given rating.
The implementation should unblock the content. TV input service has responsibility to decide when/how the unblock expires while it can keep previously unblocked ratings in order not to ask a user to unblock whenever a content rating is changed. Therefore an unblocked rating can be valid for a channel, a program, or certain amount of time depending on the implementation.
| Parameters | |
|---|---|
| unblockedRating | TvContentRating: An unblocked content rating | 
sendTvInputSessionData
public void sendTvInputSessionData (String type, Bundle data)
Sends data related to this session to corresponding linked
 TvAdService object via TvAdView.
 
Methods like notifyBroadcastInfoResponse(android.media.tv.BroadcastInfoResponse) sends the
 related data to linked TvInteractiveAppService, but
 don't work for TvAdService. The method is used specifically
 for TvAdService use cases.
| Parameters | |
|---|---|
| type | String: data type
 This value cannot benull.
 Value isTvInputManager.SESSION_DATA_TYPE_TUNED,TvInputManager.SESSION_DATA_TYPE_TRACK_SELECTED,TvInputManager.SESSION_DATA_TYPE_TRACKS_CHANGED,TvInputManager.SESSION_DATA_TYPE_VIDEO_AVAILABLE,TvInputManager.SESSION_DATA_TYPE_VIDEO_UNAVAILABLE,TvInputManager.SESSION_DATA_TYPE_BROADCAST_INFO_RESPONSE,TvInputManager.SESSION_DATA_TYPE_AD_RESPONSE,TvInputManager.SESSION_DATA_TYPE_AD_BUFFER_CONSUMED, orTvInputManager.SESSION_DATA_TYPE_TV_MESSAGE | 
| data | Bundle: the related data values
 This value cannot benull. | 
setOverlayViewEnabled
public void setOverlayViewEnabled (boolean enable)
Enables or disables the overlay view.
By default, the overlay view is disabled. Must be called explicitly after the session is created to enable the overlay view.
The TV input service can disable its overlay view when the size of the overlay view is
 insufficient to display the whole information, such as when used in Picture-in-picture.
 Override onOverlayViewSizeChanged(int, int) to get the size of the overlay view, which
 then can be used to determine whether to enable/disable the overlay view.
| Parameters | |
|---|---|
| enable | boolean:trueif you want to enable the overlay view.falseotherwise. | 
