---
title: CarKeyRemoteControlSessionDelegate
framework: CarKey
role: symbol
role_heading: Protocol
platforms: [iOS 16.0+, iPadOS 16.0+, Mac Catalyst 16.0+, macOS 13.3+, watchOS 9.0+]
path: carkey/carkeyremotecontrolsessiondelegate
---

# CarKeyRemoteControlSessionDelegate

An interface you use to receive session- and vehicle-related information from the system.

## Declaration

```swift
protocol CarKeyRemoteControlSessionDelegate
```

## Overview

Overview The system uses the CarKeyRemoteControlSessionDelegate protocol to notify your app asynchronously when something happens. Adopt this protocol in one of your objects and detect when the system invalidates the session. If your vehicle is capable of sending data to your app, you also use this protocol to receive any data the vehicle sends.

## Topics

### Receiving Data from the Vehicle

- [remoteControlSession(_:vehicleDidUpdateReport:)](carkey/carkeyremotecontrolsessiondelegate/remotecontrolsession(_:vehicledidupdatereport:).md)
- [remoteControlSession(_:didReceivePassthroughData:fromVehicle:)](carkey/carkeyremotecontrolsessiondelegate/remotecontrolsession(_:didreceivepassthroughdata:fromvehicle:).md)

### Handling Session Invalidation

- [remoteControlSession(_:didInvalidateWithError:)](carkey/carkeyremotecontrolsessiondelegate/remotecontrolsession(_:didinvalidatewitherror:).md)

### Instance Methods

- [remoteControlSession(_:didCreateKey:forVehicle:)](carkey/carkeyremotecontrolsessiondelegate/remotecontrolsession(_:didcreatekey:forvehicle:).md)

## See Also

### Setup

- [CarKeyRemoteControl](carkey/carkeyremotecontrol.md)
- [CarKeyRemoteControlSession](carkey/carkeyremotecontrolsession.md)
- [VehicleReport](carkey/vehiclereport.md)
