Provides a mechanism to select a Service for presentation. The ServiceContext interface abstracts receiver resources required to tune to and present the content of a service, such a tuner, MPEG decoder, screen real estate, and interactive content handlers. The ServiceContext.select() method constitutes a high-level mechanism by which applications may cause the receiver to tune to a desired service, demultiplex the necessary service components, present the audio and video, and launch any associated applications. Applications launched by the ServiceContext.select() method are said to "run" within the ServiceContext.

Due to the scarce nature of the resources embodied by a ServiceContext, implementations may limit the total number of simultaneous ServiceContext objects to a very small number, perhaps even one. (ServiceContext objects in the destroyed state do not count toward this total.) Given appropriate security permissions, it is always possible to access (via {@link javax.tv.service.selection.ServiceContextFactory#getServiceContexts}) or create (via {@link javax.tv.service.selection.ServiceContextFactory#createServiceContext}) at least one ServiceContext instance.

@see javax.tv.service.selection.ServiceContext @see javax.tv.service.selection.ServiceContextFactory