Any time anything is launched onto a first screen device, there will be important session information that needs to be tracked. LaunchSession will track this data, and must be retained to perform certain actions within the session.


NSString * appId

System-specific, unique ID of the app (ex. youtube.leanback.v4, 0000134, hulu)

NSString * name

User-friendly name of the app (ex. YouTube, Browser, Hulu)

NSString * sessionId

Unique ID for the session (only provided by certain protocols)

id rawData

Raw data from the first screen device about the session. In most cases, this is an NSDictionary.

LaunchSessionType sessionType

When closing a LaunchSession, the DeviceService relies on the sessionType to determine the method of closing the session.

DeviceService * service

DeviceService responsible for launching the session.


- (BOOL) isEqual:(LaunchSession *)launchSession

Compares two LaunchSession objects.

  • launchSession –

    LaunchSession object to compare.


YES if both LaunchSession id and sessionId values are equal

- (void) closeWithSuccess:(SuccessBlock)success failure:(FailureBlock)failure

Closes the session on the first screen device. Depending on the sessionType, the associated service will have different ways of handling the close functionality.

  • success –

    (optional) SuccessBlock to be called on success

  • failure: failure –

    (optional) FailureBlock to be called on failure

+ (LaunchSession *) launchSessionForAppId:(NSString *)appId

Instantiates a LaunchSession object for a given app ID.

  • appId –

    System-specific, unique ID of the app

+ (LaunchSession *) launchSessionFromJSONObject:(NSDictionary *)json

Deserializes a LaunchSession object from json object.

  • json –

    Serialized LaunchSession object by -[LaunchSession toJSONObject].