Added in API level 21

HardwareSession


abstract class HardwareSession : TvInputService.Session
kotlin.Any
   ↳ android.media.tv.TvInputService.Session
   ↳ android.media.tv.TvInputService.HardwareSession

Base class for a TV input session which represents an external device connected to a hardware TV input.

This class is for an input which provides channels for the external set-top box to the application. Once a TV input returns an implementation of this class on onCreateSession(java.lang.String), the framework will create a separate session for a hardware TV Input (e.g. HDMI 1) and forward the application's surface to the session so that the user can see the screen of the hardware TV Input when she tunes to a channel from this TV input. The implementation of this class is expected to change the channel of the external set-top box via a proprietary protocol when android.media.tv.TvInputService.HardwareSession#onTune is requested by the application.

Note that this class is not for inputs for internal hardware like built-in tuner and HDMI 1.

Summary

Public constructors

Creates a new HardwareSession.

Public methods
abstract String!

Returns the hardware TV input ID the external device is connected to.

open Unit

Called when the underlying hardware TV input session calls TvInputService.Session.notifyVideoAvailable().

open Unit

Called when the underlying hardware TV input session calls TvInputService.Session.notifyVideoUnavailable(int).

Boolean
onSetSurface(surface: Surface?)

This method will not be called in HardwareSession.

Inherited functions

Public constructors

HardwareSession

Added in API level 21
HardwareSession(context: Context!)

Creates a new HardwareSession.

Parameters
context Context!: The context of the application

Public methods

getHardwareInputId

Added in API level 21
abstract fun getHardwareInputId(): String!

Returns the hardware TV input ID the external device is connected to.

TV input is expected to provide android.R.attr#setupActivity so that the application can launch it before using this TV input. The setup activity may let the user select the hardware TV input to which the external device is connected. The ID of the selected one should be stored in the TV input so that it can be returned here.

onHardwareVideoAvailable

Added in API level 21
open fun onHardwareVideoAvailable(): Unit

Called when the underlying hardware TV input session calls TvInputService.Session.notifyVideoAvailable().

onHardwareVideoUnavailable

Added in API level 21
open fun onHardwareVideoUnavailable(reason: Int): Unit

Called when the underlying hardware TV input session calls TvInputService.Session.notifyVideoUnavailable(int).

Parameters
reason Int: The reason that the hardware TV input stopped the playback:

onSetSurface

Added in API level 21
fun onSetSurface(surface: Surface?): Boolean

This method will not be called in HardwareSession. Framework will forward the application's surface to the hardware TV input.

Parameters
surface Surface?: The surface to be used for video rendering. Can be null.
Return
Boolean true if the surface was set successfully, false otherwise.