1041
Documentation iOS Documentation Document current as of 06/07/2018 11:19 AM. NSString(SDLEnum) Category Reference Section Contents -isEqualToEnum: Overview Undocumented -isEqualToEnum: Returns whether or not two enums are equal. OBJECTIVE-C - (BOOL)isEqualToEnum:(nonnull SDLEnum)enumObj;

NSString(SDLEnum) Category Reference · Documentation iOS Documentation Document current as of 06/07/2018 11:19 AM. NSString(SDLEnum) Category Reference Section Contents • -isEqualToEnum:

  • Upload
    others

  • View
    31

  • Download
    0

Embed Size (px)

Citation preview

Documentation iOS DocumentationDocument current as of 06/07/2018 11:19 AM.

NSString(SDLEnum) CategoryReference

Section Contents

• -isEqualToEnum:

Overview

Undocumented

-isEqualToEnum:

Returns whether or not two enums are equal.

OBJECTIVE-C

- (BOOL)isEqualToEnum:(nonnull SDLEnum)enumObj;

enumObj

A SDLEnum object

YES if the two enums are equal. NO if not.

SDLAddCommand Class Reference

Section Contents

• -initWithHandler:• -initWithId:vrCommands:handler:• -initWithId:vrCommands:menuName:handler:• -

initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:

SWIFT

func isEqual(toEnum enumObj: SDLEnum) -> Bool

PARAMETERS

RETURN VALUE

• handler• cmdID• menuParams• vrCommands• cmdIcon

Overview

This class will add a command to the application’s Command Menu

SDLMenuParams

A command will be added to the end of the list of elements in the Command

Menu under the following conditions: • When a SDLCommand is added with no SDLMenuParams value provided• When a SDLMenuParams value is provided with a SDLMenuParam.position

value greater than or equal to the number of menu items currently defined inthe menu specified by the SDLMenuParam.parentID value

The set of choices which the application builds using SDLAddCommand can be

a mixture of: • Choices having only VR synonym definitions, but no SDLMenuParams

definitions • Choices having only SDLMenuParams definitions, but no VR synonym

definitions • Choices having both SDLMenuParams and VR synonym definitions

HMILevel needs to be FULL, LIMITED or BACKGROUD

@since SDL 1.0

SeeSDLDeleteCommand SDLAddSubMenu SDLDeleteSubMenu

-initWithHandler:

Construct a SDLAddCommand with a handler callback when an event occurs.

handler

A callback that will be called when a button event occurs for the

command

An SDLAddCommand object

OBJECTIVE-C

- (nonnull instancetype)initWithHandler: (nullable SDLRPCCommandNotificationHandler)handler;

SWIFT

init(handler: SDLRPCCommandNotificationHandler? = nil)

PARAMETERS

RETURN VALUE

-initWithId:vrCommands:handler:

Undocumented

-initWithId:vrCommands:menuName:handler:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray<NSString *> *)vrCommands handler:(nullable SDLRPCCommandNotificationHandler)handler;

SWIFT

init(id commandId: UInt32, vrCommands: [String]?, handler: SDLRPCCommandNotificationHandler? = nil)

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray<NSString *> *)vrCommands menuName:(NSString *)menuName handler:(nullable SDLRPCCommandNotificationHandler)handler;

-

initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handl

Undocumented

SWIFT

init(id commandId: UInt32, vrCommands: [String]?, menuName: String, handler: SDLRPCCommandNotificationHandler? = nil)

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray<NSString *> *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(nullable NSString *)iconValue iconType:(nullable SDLImageType)iconType handler:(nullable SDLRPCCommandNotificationHandler)handler;

SWIFT

init(id commandId: UInt32, vrCommands: [String]?, menuName: String, parentId: UInt32, position: UInt16, iconValue: String?, iconType: SDLImageType?, handler: SDLRPCCommandNotificationHandler? = nil)

handler

A handler that will let you know when the button you created is subscribed.

WarningThis will only work if you use SDLManager.

cmdID

A Unique Command ID that identifies the command

@discussion Is returned in an SDLOnCommand notification to identify the

command selected by the user

Required, Integer, 0 - 2,000,000,000

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLRPCCommandNotificationHandler handler;

SWIFT

var handler: SDLRPCCommandNotificationHandler? { get set }

menuParams

a SDLMenuParams pointer which will defined the command and how it is added

to the Command Menu

@discussion If provided, this will define the command and how it is added to

the Command Menu

If null, commands will not be accessible through the HMI application menu

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

SWIFT

var cmdID: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLMenuParams *menuParams;

vrCommands

An array of strings to be used as VR synonyms for this command.

@discussion If provided, defines one or more VR phrases the recognition of any

of which triggers the SDLOnCommand notification with this cmdID

If null, commands will not be accessible by voice commands (when the user

hits push-to-talk)

Optional, Array of Strings, Max String length 99 chars, Array size 1 - 100

SWIFT

var menuParams: SDLMenuParams? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *vrCommands;

SWIFT

var vrCommands: [String]? { get set }

cmdIcon

Image struct containing a static or dynamic icon

@discussion If provided, defines the image to be be shown along with a

command

If omitted on supported displays, no (or the default if applicable) icon will be

displayed

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *cmdIcon;

SWIFT

var cmdIcon: SDLImage? { get set }

SDLAddSubMenu Class Reference

Section Contents

• -initWithId:menuName:• -initWithId:menuName:position:• menuID• position• menuName

Overview

Add a SDLSubMenu to the Command Menu

A SDLSubMenu can only be added to the Top Level Menu (i.e.a SDLSubMenu

cannot be added to a SDLSubMenu), and may only contain commands as

children

HMILevel needs to be FULL, LIMITED or BACKGROUD

Since SmartDeviceLink 1.0

see SDLDeleteSubMenu SDLAddCommand SDLDeleteCommand

-initWithId:menuName:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName;

-initWithId:menuName:position:

Undocumented

menuID

a Menu ID that identifies a sub menu @discussion This value is used in

SDLAddCommand to which SDLSubMenu is the parent of the command being

added

SWIFT

init(id menuId: UInt32, menuName: String)

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position;

SWIFT

init(id menuId: UInt32, menuName: String, position: UInt8)

position

a position of menu @discussion An NSNumber pointer representing the position

within the items of the top level Command Menu. 0 will insert at the front, 1 will

insert after the first existing element, etc. Position of any submenu will always

be located before the return and exit options

Notes:

• Min Value: 0; Max Value: 1000• If position is greater or equal than the number of items on top level, the

sub menu will be appended by the end• If this parameter is omitted, the entry will be added at the end of the list

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull menuID;

SWIFT

var menuID: NSNumber & SDLInt { get set }

menuName

a menuName which is displayed representing this submenu item @discussion

NSString which will be displayed representing this submenu item

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *position;

SWIFT

var position: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

SDLAirbagStatus Class Reference

Section Contents

• driverAirbagDeployed• driverSideAirbagDeployed• driverCurtainAirbagDeployed• passengerAirbagDeployed• passengerCurtainAirbagDeployed• driverKneeAirbagDeployed• passengerSideAirbagDeployed• passengerKneeAirbagDeployed

Overview

A vehicle data status struct for airbags

driverAirbagDeployed

References signal “VedsDrvBag_D_Ltchd”. See VehicleDataEventStatus.

Required

SWIFT

var menuName: String { get set }

driverSideAirbagDeployed

References signal “VedsDrvSideBag_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverAirbagDeployed;

SWIFT

var driverAirbagDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverSideAirbagDeployed;

driverCurtainAirbagDeployed

References signal “VedsDrvCrtnBag_D_Ltchd”. See VehicleDataEventStatus

Required

passengerAirbagDeployed

References signal “VedsPasBag_D_Ltchd”. See VehicleDataEventStatus.

SWIFT

var driverSideAirbagDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverCurtainAirbagDeployed;

SWIFT

var driverCurtainAirbagDeployed: SDLVehicleDataEventStatus { get set }

Required

passengerCurtainAirbagDeployed

References signal “VedsPasCrtnBag_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerAirbagDeployed;

SWIFT

var passengerAirbagDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerCurtainAirbagDeployed;

driverKneeAirbagDeployed

References signal “VedsKneeDrvBag_D_Ltchd”. See VehicleDataEventStatus.

Required

passengerSideAirbagDeployed

References signal “VedsPasSideBag_D_Ltchd”. See VehicleDataEventStatus.

SWIFT

var passengerCurtainAirbagDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverKneeAirbagDeployed;

SWIFT

var driverKneeAirbagDeployed: SDLVehicleDataEventStatus { get set }

Required

passengerKneeAirbagDeployed

References signal “VedsKneePasBag_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerSideAirbagDeployed;

SWIFT

var passengerSideAirbagDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerKneeAirbagDeployed;

SDLAlert Class Reference

Section Contents

• -initWithAlertText1:alertText2:duration:• -initWithAlertText1:alertText2:alertText3:• -initWithAlertText1:alertText2:alertText3:duration:• -initWithAlertText1:alertText2:alertText3:duration:softButtons:• -initWithTTS:playTone:• -initWithTTS:alertText1:alertText2:playTone:duration:• -initWithTTS:alertText1:alertText2:alertText3:playTone:duration:• -initWithTTSChunks:playTone:• -initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:• -

initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:• alertText1• alertText2• alertText3• ttsChunks• duration• playTone• progressIndicator• softButtons

SWIFT

var passengerKneeAirbagDeployed: SDLVehicleDataEventStatus { get set }

Overview

Shows an alert which typically consists of text-to-speech message and text on

the display. At least either alertText1, alertText2 or TTSChunks need to be

provided.

• The displayed portion of the SDLAlert, if any, will persist until the specified

timeout has elapsed, or the SDLAlert is preempted• An SDLAlert will preempt (abort) any SmartDeviceLink Operation that is

in-progress, except an already-in-progress SDLAlert• An SDLAlert cannot be preempted by any SmartDeviceLink Operation• An SDLAlert can be preempted by a user action (button push)• An SDLAlert will fail if it is issued while another SDLAlert is in progress• Although each Alert parameter is optional, in fact each SDLAlert request

must supply at least one of the following parameters:

◦ alertText1◦ alertText2◦ alertText3◦ ttsChunks

HMILevel needs to be FULL or LIMITED.If the app has been granted function group Notification theSDLHMILevel can also be BACKGROUND

@since SDL 1.0

-initWithAlertText1:alertText2:duration:

Undocumented

OBJECTIVE-C

- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration;

-initWithAlertText1:alertText2:alertText3:

Undocumented

-initWithAlertText1:alertText2:alertText3:duration:

Undocumented

SWIFT

init(alertText1: String?, alertText2: String?, duration: UInt16)

OBJECTIVE-C

- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3;

SWIFT

init(alertText1: String?, alertText2: String?, alertText3: String?)

-

initWithAlertText1:alertText2:alertText3:duration:softButtons:

Undocumented

OBJECTIVE-C

- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration;

SWIFT

init(alertText1: String?, alertText2: String?, alertText3: String?, duration:UInt16)

OBJECTIVE-C

- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

-initWithTTS:playTone:

Undocumented

-

initWithTTS:alertText1:alertText2:playTone:duration:

Undocumented

SWIFT

init(alertText1: String?, alertText2: String?, alertText3: String?, duration:UInt16, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone;

SWIFT

init(tts ttsText: String?, playTone: Bool)

-

initWithTTS:alertText1:alertText2:alertText3:playTone:duration:

Undocumented

OBJECTIVE-C

- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration;

SWIFT

init(tts ttsText: String?, alertText1: String?, alertText2: String?, playTone: Bool, duration: UInt16)

OBJECTIVE-C

- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration;

-initWithTTSChunks:playTone:

Undocumented

-

initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:

Undocumented

SWIFT

init(tts ttsText: String?, alertText1: String?, alertText2: String?, alertText3: String?, playTone: Bool, duration: UInt16)

OBJECTIVE-C

- (instancetype)initWithTTSChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks playTone:(BOOL)playTone;

SWIFT

init(ttsChunks: [SDLTTSChunk]?, playTone: Bool)

-

initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButto

Undocumented

OBJECTIVE-C

- (instancetype)initWithTTSChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

SWIFT

init(ttsChunks: [SDLTTSChunk]?, alertText1: String?, alertText2: String?, alertText3: String?, playTone: Bool, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

- (instancetype)initWithTTSChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

alertText1

The String to be displayed in the first field of the display during the Alert

@discussion Length is limited to what is indicated in SDLRegisterAppInterface

response

If omitted, top display line will be cleared

Text is always centered

Optional, Max length 500 chars

SWIFT

init(ttsChunks: [SDLTTSChunk]?, alertText1: String?, alertText2: String?, alertText3: String?, playTone: Bool, duration: UInt16, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *alertText1;

SWIFT

var alertText1: String? { get set }

alertText2

The String to be displayed in the second field of the display during the Alert

@discussion Only permitted if HMI supports a second display line

Length is limited to what is indicated in SDLRegisterAppInterface response

If omitted, second display line will be cleared

Text is always centered

Optional, Max length 500 chars

alertText3

the String to be displayed in the third field of the display during the Alert

@discussion Only permitted if HMI supports a third display line

Length is limited to what is indicated in SDLRegisterAppInterface response

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *alertText2;

SWIFT

var alertText2: String? { get set }

If omitted, third display line will be cleared

Text is always centered

Optional, Max length 500 chars

ttsChunks

An array which, taken together, specify what is to be spoken to the user

Optional, Array of SDLTTSChunk, Array length 1 - 100

SeeSDLTTSChunk

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *alertText3;

SWIFT

var alertText3: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsChunks;

duration

The duration of the displayed portion of the alert, in milliseconds.

@discussion After this amount of time has passed, the display fields alertText1

and alertText2 will revert to what was displayed in those fields before the alert

began.

Typical timeouts are 3 - 5 seconds

If omitted, the timeout is set to 5 seconds

Optional, Integer, 3000 - 10000

SWIFT

var ttsChunks: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *duration;

SWIFT

var duration: (NSNumber & SDLInt)? { get set }

playTone

Whether the alert tone should be played before the TTS (if any) is spoken.

@discussion If ommitted, no tone is played

Optional, Boolean

progressIndicator

If supported on the given platform, the alert GUI will include some sort of

animation indicating that loading of a feature is progressing. e.g. a spinning

wheel or hourglass, etc.

Optional, Boolean

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *playTone;

SWIFT

var playTone: (NSNumber & SDLBool)? { get set }

softButtons

App defined SoftButtons.

@discussion If omitted on supported displays, the displayed alert shall not have

any SoftButtons

Optional, Array of SDLSoftButton, Array size 0 - 4

SeeSDLSoftButton

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *progressIndicator;

SWIFT

var progressIndicator: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SDLAlertManeuver Class Reference

Section Contents

• -initWithTTS:softButtons:• -initWithTTSChunks:softButtons:• ttsChunks• softButtons

Overview

Shows a SDLShowConstantTBT message with an optional voice command. This

message is shown as an overlay over the display’s base screen.

@since SmartDeviceLink 1.0

-initWithTTS:softButtons:

Undocumented

SWIFT

var softButtons: [SDLSoftButton]? { get set }

-initWithTTSChunks:softButtons:

Undocumented

OBJECTIVE-C

- (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

SWIFT

init(tts ttsText: String?, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

- (instancetype)initWithTTSChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

ttsChunks

An array of text chunks.

Optional, Array of SDLTTSChunk, Array length 1 - 100

SeeSDLTTSChunk

SWIFT

init(ttsChunks: [SDLTTSChunk]?, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsChunks;

SWIFT

var ttsChunks: [SDLTTSChunk]? { get set }

softButtons

An arry of soft buttons. If omitted on supported displays, only the system

defined “Close” SoftButton shall be displayed.

Optional, Array of SDLSoftButton, Array length 0 - 3

SeeSDLSoftButton

SDLAlertResponse Class Reference

Section Contents

• tryAgainTime

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SWIFT

var softButtons: [SDLSoftButton]? { get set }

Overview

Response to SDLAlert

@since SDL 1.0

tryAgainTime

Undocumented

OBJECTIVE-C

@property (nullable, strong, nonatomic) NSNumber<SDLInt> *tryAgainTime

SWIFT

var tryAgainTime: (NSNumber & SDLInt)? { get set }

SDLAppInfo Class Reference

Section Contents

• +currentAppInfo• appDisplayName• appBundleID• appVersion

Overview

A struct used in register app interface. Contains detailed information about the

registered application.

+currentAppInfo

Undocumented

OBJECTIVE-C

+ (instancetype)currentAppInfo;

SWIFT

class func current() -> Self

appDisplayName

The name displayed for the mobile application on the mobile device (can differ

from the app name set in the initial RAI request).

Required

appBundleID

The AppBundleID of an iOS application or package name of the Android

application. This supports App Launch strategies for each platform.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull appDisplayName;

SWIFT

var appDisplayName: String { get set }

appVersion

Represents the build version number of this particular mobile app.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull appBundleID;

SWIFT

var appBundleID: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull appVersion;

SDLArtwork Class Reference

Section Contents

• +artworkWithImage:name:asImageFormat:• +artworkWithImage:asImageFormat:• +persistentArtworkWithImage:name:asImageFormat:• +persistentArtworkWithImage:asImageFormat:• -initWithImage:name:persistent:asImageFormat:• -initWithImage:persistent:asImageFormat:

Overview

Undocumented

+artworkWithImage:name:asImageFormat:

Convenience Helper to create an ephemeral artwork from an image.

This is an ephemeral file, it will not be persisted through sessions / ignition

cycles. Any files that you do not know you will use in future sessions should be

created through this method. For example, album / artist artwork should be

ephemeral.

SWIFT

var appVersion: String { get set }

Persistent files should be created using persistentArtworkWithImage:name:asI

mageFormat:

Warning

It is strongly recommended to pass the file url using an SDLFile initializer

instead of the image. If you pass the UIImage, it is loaded into memory, and will

be dumped to a temporary file. This will create a duplicate file. Only pass a

UIImage if the image is not stored on disk.

image

The UIImage to be sent to the remote head unit

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

imageFormat

OBJECTIVE-C

+ (nonnull instancetype)artworkWithImage:(nonnull UIImage *)image name:(nonnull NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat;

PARAMETERS

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

+artworkWithImage:asImageFormat:

Convenience Helper to create an ephemeral artwork from an image. A unique

name will be assigned to the image. This name is a string representation of the

image’s data which is created by hashing the data using the MD5 algorithm.

This is an ephemeral file, it will not be persisted through sessions / ignition

cycles. Any files that you do not know you will use in future sessions should be

created through this method. For example, album / artist artwork should be

ephemeral.

Persistent files should be created using persistentArtworkWithImage:name:asI

mageFormat:

Warning

It is strongly recommended to pass the file url using an SDLFile initializer

instead of the image. If you pass the UIImage, it is loaded into memory, and will

RETURN VALUE

be dumped to a temporary file. This will create a duplicate file. Only pass a

UIImage if the image is not stored on disk.

image

The UIImage to be sent to the remote head unit

imageFormat

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

OBJECTIVE-C

+ (nonnull instancetype)artworkWithImage:(nonnull UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat;

PARAMETERS

RETURN VALUE

+persistentArtworkWithImage:name:asImageFormat:

Convenience Helper to create a persistent artwork from an image.

This is a persistent file, it will be persisted through sessions / ignition cycles.

You will only have a limited space for all files, so be sure to only persist files

that are required for all or most sessions. For example, menu artwork should be

persistent.

Ephemeral files should be created using ephemeralArtworkWithImage:name:as

ImageFormat:

Warning

It is strongly recommended to pass the file url using an SDLFile initializer

instead of the image. If you pass the UIImage, it is loaded into memory, and will

be dumped to a temporary file. This will create a duplicate file. Only pass a

UIImage if the image is not stored on disk.

image

The UIImage to be sent to the remote head unit

OBJECTIVE-C

+ (nonnull instancetype)persistentArtworkWithImage:(nonnull UIImage *)image name:(nonnull NSString *)name asImageFormat: (SDLArtworkImageFormat)imageFormat;

PARAMETERS

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

imageFormat

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

+persistentArtworkWithImage:asImageFormat:

Convenience Helper to create a persistent artwork from an image. A unique

name will be assigned to the image. This name is a string representation of the

image’s data which is created by hashing the data using the MD5 algorithm.

This is a persistent file, it will be persisted through sessions / ignition cycles.

You will only have a limited space for all files, so be sure to only persist files

that are required for all or most sessions. For example, menu artwork should be

persistent.

Ephemeral files should be created using ephemeralArtworkWithImage:name:as

ImageFormat:

Warning

It is strongly recommended to pass the file url using an SDLFile initializer

instead of the image. If you pass the UIImage, it is loaded into memory, and will

RETURN VALUE

be dumped to a temporary file. This will create a duplicate file. Only pass a

UIImage if the image is not stored on disk.

image

The UIImage to be sent to the remote head unit

imageFormat

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

OBJECTIVE-C

+ (nonnull instancetype)persistentArtworkWithImage:(nonnull UIImage *)image asImageFormat: (SDLArtworkImageFormat)imageFormat;

PARAMETERS

RETURN VALUE

-initWithImage:name:persistent:asImageFormat:

Create a file for transmission to the remote system from a UIImage.

image

The UIImage to be sent to the remote head unit

name

OBJECTIVE-C

- (nonnull instancetype)initWithImage:(nonnull UIImage *)image name:(nonnull NSString *)name persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat;

SWIFT

init(image: UIImage, name: String, persistent: Bool, as imageFormat: SDLArtworkImageFormat)

PARAMETERS

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

persistent

Whether or not the artwork should be persistent.

imageFormat

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

-initWithImage:persistent:asImageFormat:

Create a file for transmission to the remote system from a UIImage. A unique

name will be assigned to the image. This name is a string representation of the

image’s data which is created by hashing the data using the MD5 algorithm.

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithImage:(nonnull UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat;

image

The UIImage to be sent to the remote head unit

persistent

Whether or not the artwork should be persistent.

imageFormat

Whether the image should be converted to a PNG or JPG before

transmission. Images with transparency or few colors should be PNGs.

Images with many colors should be JPGs.

An instance of this class to be passed to the file manager.

SWIFT

init(image: UIImage, persistent: Bool, as imageFormat: SDLArtworkImageFormat)

PARAMETERS

RETURN VALUE

SDLAudioPassThruCapabilities ClassReference

Section Contents

• samplingRate• bitsPerSample• audioType

Overview

Describes different audio type configurations for SDLPerformAudioPassThru,

e.g. {8kHz,8-bit,PCM}

Since SmartDeviceLink 2.0

samplingRate

The sampling rate for AudioPassThru

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSamplingRate _Nonnull samplingRate;

bitsPerSample

The sample depth in bit for AudioPassThru

Required

audioType

The audiotype for AudioPassThru

Required

SWIFT

var samplingRate: SDLSamplingRate { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLBitsPerSample _Nonnull bitsPerSample;

SWIFT

var bitsPerSample: SDLBitsPerSample { get set }

SDLAudioStreamManager ClassReference

Section Contents

• delegate• playing• queue• -init• -initWithManager:• -pushWithFileURL:• -playNextWhenReady• -stop

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLAudioType _Nonnull audioType;

SWIFT

var audioType: SDLAudioType { get set }

Overview

Undocumented

delegate

The delegate describing when files are done playing or any errors that occur

playing

Whether or not we are currently playing audio

OBJECTIVE-C

@property (readwrite, nonatomic) id<SDLAudioStreamManagerDelegate> _Nullable delegate;

OBJECTIVE-C

@property (readonly, getter=isPlaying, assign, nonatomic) BOOL playing;

queue

The queue of audio files that will be played in sequence

-init

Init should only occur with dependencies. use initWithManager:

SWIFT

var isPlaying: Bool { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSArray<SDLAudioFile *> *_Nonnull queue;

SWIFT

var queue: [SDLAudioFile] { get }

A failure

-initWithManager:

Create an audio stream manager with a reference to the parent stream

manager.

Warning

For internal use

OBJECTIVE-C

- (nonnull instancetype)init;

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithManager: (nonnull id<SDLStreamingAudioManagerType>)streamManager;

streamManager

The parent stream manager

The audio stream manager

-pushWithFileURL:

Push a new file URL onto the queue after converting it into the correct PCM

format for streaming binary data. Call playNextWhenReady to start playing

the next completed pushed file.

Note

This happens on a serial background thread and will provide an error callback

using the delegate if the conversion fails.

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (void)pushWithFileURL:(nonnull NSURL *)fileURL;

fileURL

File URL to convert

-playNextWhenReady

Play the next item in the queue. If an item is currently playing, it will continue

playing and this item will begin playing after it is completed.

When complete, this will callback on the delegate.

SWIFT

func push(withFileURL fileURL: URL)

PARAMETERS

OBJECTIVE-C

- (void)playNextWhenReady;

-stop

Stop playing the queue after the current item completes and clear the queue. If

nothing is playing, the queue will be cleared.

SWIFT

func playNextWhenReady()

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

SDLBeltStatus Class Reference

Section Contents

• driverBeltDeployed• passengerBeltDeployed• passengerBuckleBelted• driverBuckleBelted• leftRow2BuckleBelted• passengerChildDetected• rightRow2BuckleBelted• middleRow2BuckleBelted• middleRow3BuckleBelted• leftRow3BuckleBelted• rightRow3BuckleBelted• leftRearInflatableBelted• rightRearInflatableBelted• middleRow1BeltDeployed• middleRow1BuckleBelted

Overview

Vehicle data struct for the seat belt status

driverBeltDeployed

References signal “VedsDrvBelt_D_Ltchd”. See VehicleDataEventStatus.

Required

passengerBeltDeployed

References signal “VedsPasBelt_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverBeltDeployed;

SWIFT

var driverBeltDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerBeltDeployed;

passengerBuckleBelted

References signal “VedsRw1PasBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

driverBuckleBelted

References signal “VedsRw1DrvBckl_D_Ltchd”. See VehicleDataEventStatus

Required

SWIFT

var passengerBeltDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerBuckleBelted;

SWIFT

var passengerBuckleBelted: SDLVehicleDataEventStatus { get set }

leftRow2BuckleBelted

References signal “VedsRw2lBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull driverBuckleBelted;

SWIFT

var driverBuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull leftRow2BuckleBelted;

passengerChildDetected

References signal “VedsRw1PasChld_D_Ltchd”. See VehicleDataEventStatus.

Required

rightRow2BuckleBelted

References signal “VedsRw2rBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

SWIFT

var leftRow2BuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull passengerChildDetected;

SWIFT

var passengerChildDetected: SDLVehicleDataEventStatus { get set }

middleRow2BuckleBelted

References signal “VedsRw2mBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull rightRow2BuckleBelted;

SWIFT

var rightRow2BuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull middleRow2BuckleBelted;

middleRow3BuckleBelted

References signal “VedsRw3mBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

leftRow3BuckleBelted

References signal “VedsRw3lBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

SWIFT

var middleRow2BuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull middleRow3BuckleBelted;

SWIFT

var middleRow3BuckleBelted: SDLVehicleDataEventStatus { get set }

rightRow3BuckleBelted

References signal “VedsRw3rBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull leftRow3BuckleBelted;

SWIFT

var leftRow3BuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull rightRow3BuckleBelted;

leftRearInflatableBelted

References signal “VedsRw2lRib_D_Ltchd”. See VehicleDataEventStatus.

Required

rightRearInflatableBelted

References signal “VedsRw2rRib_D_Ltchd”. See VehicleDataEventStatus.

Required

SWIFT

var rightRow3BuckleBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull leftRearInflatableBelted;

SWIFT

var leftRearInflatableBelted: SDLVehicleDataEventStatus { get set }

middleRow1BeltDeployed

References signal “VedsRw1mBelt_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull rightRearInflatableBelted;

SWIFT

var rightRearInflatableBelted: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull middleRow1BeltDeployed;

middleRow1BuckleBelted

References signal “VedsRw1mBckl_D_Ltchd”. See VehicleDataEventStatus.

Required

SWIFT

var middleRow1BeltDeployed: SDLVehicleDataEventStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull middleRow1BuckleBelted;

SWIFT

var middleRow1BuckleBelted: SDLVehicleDataEventStatus { get set }

SDLBodyInformation Class Reference

Section Contents

• parkBrakeActive• ignitionStableStatus• ignitionStatus• driverDoorAjar• passengerDoorAjar• rearLeftDoorAjar• rearRightDoorAjar

Overview

The body information including power modes.

parkBrakeActive

• References signal “PrkBrkActv_B_Actl”.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull parkBrakeActive;

ignitionStableStatus

• References signal “Ignition_Switch_Stable”. See IgnitionStableStatus.

Required

ignitionStatus

• References signal “Ignition_status”. See IgnitionStatus.

Required

SWIFT

var parkBrakeActive: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLIgnitionStableStatus _Nonnull ignitionStableStatus;

SWIFT

var ignitionStableStatus: SDLIgnitionStableStatus { get set }

driverDoorAjar

• References signal “DrStatDrv_B_Actl”.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLIgnitionStatus _Nonnull ignitionStatus;

SWIFT

var ignitionStatus: SDLIgnitionStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *driverDoorAjar;

passengerDoorAjar

• References signal “DrStatPsngr_B_Actl”.

Optional

rearLeftDoorAjar

• References signal “DrStatRl_B_Actl”.

Optional

SWIFT

var driverDoorAjar: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *passengerDoorAjar;

SWIFT

var passengerDoorAjar: (NSNumber & SDLBool)? { get set }

rearRightDoorAjar

• References signal “DrStatRr_B_Actl”.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rearLeftDoorAjar;

SWIFT

var rearLeftDoorAjar: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rearRightDoorAjar;

SDLButtonCapabilities Class Reference

Section Contents

• name• shortPressAvailable• longPressAvailable• upDownAvailable

Overview

Provides information about the capabilities of a SDL HMI button.

@since SDL 1.0

name

• The name of the SDL HMI button.

Required

SWIFT

var rearRightDoorAjar: (NSNumber & SDLBool)? { get set }

shortPressAvailable

A NSNumber value indicates whether the button supports a SHORT press

Required, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull name;

SWIFT

var name: SDLButtonName { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull shortPressAvailable;

longPressAvailable

A NSNumber value indicates whether the button supports a LONG press

Required, Boolean

upDownAvailable

A NSNumber value indicates whether the button supports “button down” and “

button up”

SWIFT

var shortPressAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull longPressAvailable;

SWIFT

var longPressAvailable: NSNumber & SDLBool { get set }

Required, Boolean

SDLButtonPress Class Reference

Section Contents

• -initWithButtonName:moduleType:• moduleType• buttonName• buttonPressMode

Overview

This RPC allows a remote control type mobile application to simulate a

hardware button press event.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull upDownAvailable;

SWIFT

var upDownAvailable: NSNumber & SDLBool { get set }

buttonName

The name of supported RC climate or radio button.

buttonPressMode

Indicates whether this is a LONG or SHORT button press event.

SWIFT

var moduleType: SDLModuleType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

SWIFT

var buttonName: SDLButtonName { get set }

SDLCarWindowViewController ClassReference

Section Contents

• supportedOrientation

Overview

Note that if this is embedded in a UINavigationController and

UITabBarController, it will not lock orientation. You must lock your container

controller to a specific orientation.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonPressMode _Nonnull buttonPressMode;

SWIFT

var buttonPressMode: SDLButtonPressMode { get set }

supportedOrientation

The supported interface orientation you wish to use. Defaults to MaskPortrait.

SDLChangeRegistration ClassReference

Section Contents

• -initWithLanguage:hmiDisplayLanguage:• -

initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:• language• hmiDisplayLanguage

OBJECTIVE-C

@property (assign, readwrite, nonatomic) UIInterfaceOrientation supportedOrientation;

SWIFT

var supportedOrientation: UIInterfaceOrientation { get set }

• appName• ttsName• ngnMediaScreenAppName• vrSynonyms

Overview

If the app recognizes during the app registration that the SDL HMI language

(voice/TTS and/or display) does not match the app language, the app will be

able (but does not need) to change this registration with changeRegistration

prior to app being brought into focus.

Any HMILevel allowed

@since SDL 2.0

-initWithLanguage:hmiDisplayLanguage:

Undocumented

OBJECTIVE-C

- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage;

SWIFT

init(language: SDLLanguage, hmiDisplayLanguage: SDLLanguage)

-

initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenApp

Undocumented

language

The language the app wants to change to

OBJECTIVE-C

- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms;

SWIFT

init(language: SDLLanguage, hmiDisplayLanguage: SDLLanguage, appName: String?, ttsName: [SDLTTSChunk]?, ngnMediaScreenAppName: String?, vrSynonyms: [String]?)

hmiDisplayLanguage

HMI display language

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

SWIFT

var language: SDLLanguage { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull hmiDisplayLanguage;

SWIFT

var hmiDisplayLanguage: SDLLanguage { get set }

appName

Request a new app name registration

Optional, Max string length 100 chars

ttsName

Request a new TTSName registration.

Optional, Array of SDLTTSChunk, 1 - 100 elements

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *appName;

SWIFT

var appName: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsName;

ngnMediaScreenAppName

Request a new app short name registration

Optional, Max string length 100 chars

vrSynonyms

Request a new VR synonyms registration

Optional, Array of NSString, 1 - 100 elements, max string length 40 chars

SWIFT

var ttsName: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *ngnMediaScreenAppName;

SWIFT

var ngnMediaScreenAppName: String? { get set }

SDLChoice Class Reference

Section Contents

• -initWithId:menuName:vrCommands:• -

initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:• choiceID• menuName• vrCommands• image• secondaryText• tertiaryText• secondaryImage

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *vrSynonyms;

SWIFT

var vrSynonyms: [String]? { get set }

Overview

A choice is an option which a user can select either via the menu or via voice

recognition (VR) during an application initiated interaction.

Since SmartDeviceLink 1.0

-initWithId:menuName:vrCommands:

Undocumented

-

initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:terti

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray<NSString *> *)vrCommands;

SWIFT

init(id choiceId: UInt16, menuName: String, vrCommands: [String])

choiceID

The application-scoped identifier that uniquely identifies this choice

Required, Integer 0 - 65535

OBJECTIVE-C

- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray<NSString *> *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText;

SWIFT

init(id choiceId: UInt16, menuName: String, vrCommands: [String], image: SDLImage?, secondaryText: String?, secondaryImage: SDLImage?, tertiaryText: String?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull choiceID;

menuName

Text which appears in menu, representing this choice

Required, Max string length 500 chars

vrCommands

VR synonyms for this choice

Required, Array of Strings, Array length 1 - 100, Max String length 99 chars

SWIFT

var choiceID: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

SWIFT

var menuName: String { get set }

image

The image of the choice

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull vrCommands;

SWIFT

var vrCommands: [String] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *image;

secondaryText

Secondary text to display; e.g. address of POI in a search result entry

Optional, Max String length 500 chars

tertiaryText

Tertiary text to display; e.g. distance to POI for a search result entry

Optional, Max String length 500 chars

SWIFT

var image: SDLImage? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *secondaryText;

SWIFT

var secondaryText: String? { get set }

secondaryImage

Secondary image for choice

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *tertiaryText;

SWIFT

var tertiaryText: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *secondaryImage;

SDLClimateControlCapabilities ClassReference

Section Contents

• -

initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvaila• moduleName• fanSpeedAvailable• desiredTemperatureAvailable• acEnableAvailable• acMaxEnableAvailable• circulateAirEnableAvailable• autoModeEnableAvailable• dualModeEnableAvailable• defrostZoneAvailable• defrostZone• ventilationModeAvailable• ventilationMode

Overview

Contains information about a climate control module’s capabilities.

SWIFT

var secondaryImage: SDLImage? { get set }

-

initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnable

Undocumented

OBJECTIVE-C

- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable;

SWIFT

init(moduleName: String, fanSpeedAvailable: Bool, desiredTemperatureAvailable: Bool, acEnableAvailable: Bool, acMaxEnableAvailable: Bool, circulateAirAvailable circulateAirEnableAvailable: Bool, autoModeEnableAvailable: Bool, dualModeEnableAvailable: Bool, defrostZoneAvailable: Bool, ventilationModeAvailable: Bool)

moduleName

• The short friendly name of the climate control module.• It should not be used to identify a module by mobile application. *• Max string length 100 chars

Required

fanSpeedAvailable

Availability of the control of fan speed. True: Available, False: Not Available, Not

present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull moduleName;

SWIFT

var moduleName: String { get set }

desiredTemperatureAvailable

Availability of the control of desired temperature. True: Available, False: Not

Available, Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fanSpeedAvailable;

SWIFT

var fanSpeedAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *desiredTemperatureAvailable;

acEnableAvailable

Availability of the control of turn on/off AC. True: Available, False: Not Available,

Not present: Not Available.

Optional, Boolean

acMaxEnableAvailable

Availability of the control of enable/disable air conditioning is ON on the

maximum level. True: Available, False: Not Available, Not present: Not Available.

SWIFT

var desiredTemperatureAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *acEnableAvailable;

SWIFT

var acEnableAvailable: (NSNumber & SDLBool)? { get set }

Optional, Boolean

circulateAirEnableAvailable

Availability of the control of enable/disable circulate Air mode. True: Available,

False: Not Available, Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *acMaxEnableAvailable;

SWIFT

var acMaxEnableAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *circulateAirEnableAvailable;

autoModeEnableAvailable

Availability of the control of enable/disable auto mode. True: Available, False:

Not Available, Not present: Not Available.

Optional, Boolean

dualModeEnableAvailable

Availability of the control of enable/disable dual mode. True: Available, False:

Not Available, Not present: Not Available.

SWIFT

var circulateAirEnableAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *autoModeEnableAvailable;

SWIFT

var autoModeEnableAvailable: (NSNumber & SDLBool)? { get set }

Optional, Boolean

defrostZoneAvailable

Availability of the control of defrost zones. True: Available, False: Not Available,

Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *dualModeEnableAvailable;

SWIFT

var dualModeEnableAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *defrostZoneAvailable;

defrostZone

A set of all defrost zones that are controllable.

Optional, NSArray of type SDLDefrostZone minsize=“1” maxsize=“100”

ventilationModeAvailable

Availability of the control of air ventilation mode. True: Available, False: Not

Available, Not present: Not Available.

SWIFT

var defrostZoneAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLDefrostZone> *defrostZone;

SWIFT

var defrostZone: [SDLDefrostZone]? { get set }

Optional, Boolean

ventilationMode

A set of all ventilation modes that are controllable. True: Available, False: Not

Available, Not present: Not Available.

Optional, NSArray of type SDLVentilationMode minsize=“1” maxsize=“100”

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *ventilationModeAvailable;

SWIFT

var ventilationModeAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLVentilationMode> *ventilationMode;

SDLClimateControlData Class Reference

Section Contents

• -

initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeE• fanSpeed• currentTemperature• desiredTemperature• acEnable• circulateAirEnable• autoModeEnable• defrostZone• dualModeEnable• acMaxEnable• ventilationMode

Overview

The current information for the Climate Remote Control Module

SWIFT

var ventilationMode: [SDLVentilationMode]? { get set }

-

initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEn

Undocumented

fanSpeed

Speed of Fan in integer

OBJECTIVE-C

- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode;

SWIFT

init(fanSpeed: (NSNumber & SDLInt)?, desiredTemperature: SDLTemperature?, acEnable: (NSNumber & SDLBool)?, circulateAirEnable: (NSNumber & SDLBool)?, autoModeEnable: (NSNumber & SDLBool)?, defrostZone: SDLDefrostZone?, dualModeEnable: (NSNumber & SDLBool)?, acMaxEnable: (NSNumber & SDLBool)?, ventilationMode: SDLVentilationMode?)

Optional, MinValue- 0 MaxValue= 100

currentTemperature

The Current Temperature in SDLTemperature

WarningThis property is readonly and cannot be set on the module. Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *fanSpeed;

SWIFT

var fanSpeed: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTemperature *currentTemperature;

desiredTemperature

Desired Temperature in SDLTemperature

Optional

acEnable

Represents if AC is enabled.

Optional, Boolean

SWIFT

var currentTemperature: SDLTemperature? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTemperature *desiredTemperature;

SWIFT

var desiredTemperature: SDLTemperature? { get set }

circulateAirEnable

Represents if circulation of air is enabled.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *acEnable;

SWIFT

var acEnable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *circulateAirEnable;

autoModeEnable

Represents if auto mode is enabled.

Optional, Boolean

defrostZone

Represents the kind of defrost zone

Optional, SDLDefrostZone

SWIFT

var circulateAirEnable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *autoModeEnable;

SWIFT

var autoModeEnable: (NSNumber & SDLBool)? { get set }

dualModeEnable

Represents if dual mode is enabled.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDefrostZone defrostZone;

SWIFT

var defrostZone: SDLDefrostZone? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *dualModeEnable;

acMaxEnable

Represents if ac max is enabled.

Optional, Boolean

ventilationMode

Represents the kind of Ventilation zone

Optional, SDLVentilationMode

SWIFT

var dualModeEnable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *acMaxEnable;

SWIFT

var acMaxEnable: (NSNumber & SDLBool)? { get set }

SDLClusterModeStatus Class Reference

Section Contents

• powerModeActive• powerModeQualificationStatus• carModeStatus• powerModeStatus

Overview

A vehicle data struct for the cluster mode and power status

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVentilationMode ventilationMode;

SWIFT

var ventilationMode: SDLVentilationMode? { get set }

powerModeActive

References signal “PowerMode_UB”.

Required

powerModeQualificationStatus

References signal “PowerModeQF”. See PowerModeQualificationStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull powerModeActive;

SWIFT

var powerModeActive: NSNumber & SDLBool { get set }

carModeStatus

References signal “CarMode”. See CarMode.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLPowerModeQualificationStatus _Nonnull powerModeQualificationStatus;

SWIFT

var powerModeQualificationStatus: SDLPowerModeQualificationStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLCarModeStatus _Nonnull carModeStatus;

powerModeStatus

References signal “PowerMode”. See PowerMode.

Required

SWIFT

var carModeStatus: SDLCarModeStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLPowerModeStatus _Nonnull powerModeStatus;

SWIFT

var powerModeStatus: SDLPowerModeStatus { get set }

SDLConfiguration Class Reference

Section Contents

• lifecycleConfig• lockScreenConfig• loggingConfig• streamingMediaConfig• -initWithLifecycle:lockScreen:logging:• +configurationWithLifecycle:lockScreen:logging:• -initWithLifecycle:lockScreen:logging:streamingMedia:• +configurationWithLifecycle:lockScreen:logging:streamingMedia:

Overview

Undocumented

lifecycleConfig

The lifecycle configuration.

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLLifecycleConfiguration *_Nonnull lifecycleConfig;

lockScreenConfig

The lock screen configuration.

loggingConfig

The log configuration.

SWIFT

@NSCopying var lifecycleConfig: SDLLifecycleConfiguration { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLLockScreenConfiguration *_Nonnull lockScreenConfig;

SWIFT

@NSCopying var lockScreenConfig: SDLLockScreenConfiguration { get }

streamingMediaConfig

The configuration

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLLogConfiguration *_Nonnull loggingConfig;

SWIFT

@NSCopying var loggingConfig: SDLLogConfiguration { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLStreamingMediaConfiguration *_Nonnull streamingMediaConfig;

-initWithLifecycle:lockScreen:logging:

Create a new configuration to be passed into SDLManager with a custom

lifecycle, lock screen, and logging configuration.

SWIFT

@NSCopying var streamingMediaConfig: SDLStreamingMediaConfiguration { get }

OBJECTIVE-C

- (nonnull instancetype)initWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig;

SWIFT

init(lifecycle lifecycleConfig: SDLLifecycleConfiguration, lockScreen lockScreenConfig: SDLLockScreenConfiguration?, logging logConfig: SDLLogConfiguration?)

lifecycleConfig

The lifecycle configuration to be used.

lockScreenConfig

The lockscreen configuration to be used, or enabledConfiguration if

nil.

logConfig

The logging configuration to be used, or defaultConfiguration if nil.

The configuration

+configurationWithLifecycle:lockScreen:logging:

Create a new configuration to be passed into SDLManager with a custom

lifecycle, lock screen, and logging configuration.

PARAMETERS

RETURN VALUE

lifecycleConfig

The lifecycle configuration to be used.

lockScreenConfig

The lockscreen configuration to be used, or enabledConfiguration if

nil.

logConfig

The logging configuration to be used, or defaultConfiguration if nil.

OBJECTIVE-C

+ (nonnull instancetype)configurationWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig lockScreen: (nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig;

PARAMETERS

The configuration

-

initWithLifecycle:lockScreen:logging:streamingMedia:

Create a new configuration to be passed into SDLManager with a custom

lifecycle, lock screen, logging, and streaming media configuration.

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia: (nullable SDLStreamingMediaConfiguration *)streamingMediaConfig;

SWIFT

init(lifecycle lifecycleConfig: SDLLifecycleConfiguration, lockScreen lockScreenConfig: SDLLockScreenConfiguration?, logging logConfig: SDLLogConfiguration?, streamingMedia streamingMediaConfig: SDLStreamingMediaConfiguration?)

lifecycleConfig

The lifecycle configuration to be used.

lockScreenConfig

The lockscreen configuration to be used, or enabledConfiguration if

nil.

logConfig

The logging configuration to be used, or defaultConfiguration if nil.

streamingMediaConfig

The streaming media configuration to be used, or nil because it is not

needed.

The configuration

+configurationWithLifecycle:lockScreen:logging:streamingMedia:

Create a new configuration to be passed into SDLManager with a custom

lifecycle, lock screen, logging, and streaming media configuration.

PARAMETERS

RETURN VALUE

lifecycleConfig

The lifecycle configuration to be used.

lockScreenConfig

The lockscreen configuration to be used, or enabledConfiguration if

nil.

logConfig

The logging configuration to be used, or defaultConfiguration if nil.

streamingMediaConfig

OBJECTIVE-C

+ (nonnull instancetype)configurationWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig lockScreen: (nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia: (nullable SDLStreamingMediaConfiguration *)streamingMediaConfig;

PARAMETERS

The streaming media configuration to be used, or nil because it is not

needed.

The configuration

SDLCreateInteractionChoiceSet ClassReference

Section Contents

• -initWithId:choiceSet:• interactionChoiceSetID• choiceSet

Overview

Creates a Choice Set which can be used in subsequent SDLPerformInteraction

Operations.

HMILevel needs to be FULL, LIMITED or BACKGROUND

Before a perform interaction is sent you MUST wait for the success from the

CreateInteractionChoiceSet RPC.

If you do not wait the system may not recognize the first utterance from the

user.

@since SDL 1.0

See

RETURN VALUE

SDLDeleteInteractionChoiceSet SDLPerformInteraction

-initWithId:choiceSet:

Undocumented

interactionChoiceSetID

A unique ID that identifies the Choice Set

Required, Integer, 0 - 2,000,000,000

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray<SDLChoice *> *)choiceSet;

SWIFT

init(id choiceId: UInt32, choiceSet: [SDLChoice])

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull interactionChoiceSetID;

choiceSet

Array of choices, which the user can select by menu or voice recognition

Required, SDLChoice, Array size 1 - 100

SWIFT

var interactionChoiceSetID: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLChoice *> *_Nonnull choiceSet;

SWIFT

var choiceSet: [SDLChoice] { get set }

SDLDIDResult Class Reference

Section Contents

• resultCode• didLocation• data

Overview

A vehicle data struct

resultCode

Individual DID result code.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataResultCode _Nonnull resultCode;

SWIFT

var resultCode: SDLVehicleDataResultCode { get set }

didLocation

Location of raw data from vehicle data DID

Required

data

Raw DID-based data returned for requested element.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull didLocation;

SWIFT

var didLocation: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *data;

SDLDateTime Class Reference

Section Contents

• -initWithHour:minute:• -initWithHour:minute:second:millisecond:• -initWithHour:minute:second:millisecond:day:month:year:• -

initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:• millisecond• second• minute• hour• day• month• year• timezoneMinuteOffset• timezoneHourOffset

Overview

A struct referenced in SendLocation for an absolute date

SWIFT

var data: String? { get set }

-initWithHour:minute:

Undocumented

-initWithHour:minute:second:millisecond:

Undocumented

OBJECTIVE-C

- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute;

SWIFT

init(hour: UInt8, minute: UInt8)

OBJECTIVE-C

- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond;

-

initWithHour:minute:second:millisecond:day:month:year:

Undocumented

SWIFT

init(hour: UInt8, minute: UInt8, second: UInt8, millisecond: UInt16)

OBJECTIVE-C

- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year;

SWIFT

init(hour: UInt8, minute: UInt8, second: UInt8, millisecond: UInt16, day: UInt8, month: UInt8, year: UInt16)

-

initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset

Undocumented

millisecond

Milliseconds part of time

Optional, Integer 0 - 999

OBJECTIVE-C

- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset;

SWIFT

init(hour: UInt8, minute: UInt8, second: UInt8, millisecond: UInt16, day: UInt8, month: UInt8, year: UInt16, timezoneMinuteOffset: UInt8, timezoneHourOffset: Int32)

second

Seconds part of time

Optional, Integer 0 - 59

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull millisecond;

SWIFT

@NSCopying var millisecond: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull second;

minute

Minutes part of time

Optional, Integer 0 - 59

hour

Hour part of time

Optional, Integer 0 - 23

SWIFT

@NSCopying var second: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull minute;

SWIFT

@NSCopying var minute: NSNumber & SDLInt { get set }

day

Day of the month

Optional, Integer 1 - 31

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull hour;

SWIFT

@NSCopying var hour: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull day;

month

Month of the year

Optional, Integer 1 - 12

year

The year in YYYY format

Optional, Max Value 4095

SWIFT

@NSCopying var day: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull month;

SWIFT

@NSCopying var month: NSNumber & SDLInt { get set }

timezoneMinuteOffset

Time zone offset in Min with regard to UTC

Optional, Integer 0 - 59

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull year;

SWIFT

@NSCopying var year: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull timezoneMinuteOffset;

timezoneHourOffset

Time zone offset in Hours with regard to UTC

Optional, Integer -12 - 14

SWIFT

@NSCopying var timezoneMinuteOffset: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull timezoneHourOffset;

SWIFT

@NSCopying var timezoneHourOffset: NSNumber & SDLInt { get set }

SDLDeleteCommand Class Reference

Section Contents

• -initWithId:• cmdID

Overview

Removes a command from the Command Menu

HMI Status Requirements:

HMILevel: FULL, LIMITED or BACKGROUND

AudioStreamingState: N/A

SystemContext: Should not be attempted when VRSESSION or MENU

Since SmartDeviceLink 1.0

see SDLAddCommand SDLAddSubMenu SDLDeleteSubMenu

-initWithId:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)commandId;

cmdID

the Command ID that identifies the Command to be deleted from Command

Menu @discussion an NSNumber value representing Command ID

Notes: Min Value: 0; Max Value: 2000000000

SWIFT

init(id commandId: UInt32)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

SWIFT

var cmdID: NSNumber & SDLInt { get set }

SDLDeleteFile Class Reference

Section Contents

• -initWithFileName:• syncFileName

Overview

Used to delete a file resident on the SDL module in the app’s local cache. Not

supported on first generation SDL vehicles

Since SmartDeviceLink 2.0

see SDLPutFile SDLListFiles

-initWithFileName:

Undocumented

OBJECTIVE-C

- (instancetype)initWithFileName:(NSString *)fileName;

SWIFT

init(fileName: String)

syncFileName

a file reference name @discussion a String value representing a file reference

name

SDLDeleteFileResponse Class Reference

Section Contents

• spaceAvailable

Overview

Response to SDLDeleteFile

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

SWIFT

var syncFileName: String { get set }

Since SmartDeviceLink 2.0

spaceAvailable

The remaining available space for your application to store data on the remote

system.

SDLDeleteInteractionChoiceSet ClassReference

Section Contents

• -initWithId:• interactionChoiceSetID

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull spaceAvailable;

SWIFT

var spaceAvailable: NSNumber & SDLInt { get set }

Overview

Deletes an existing Choice Set identified by the parameter

interactionChoiceSetID. If the specified interactionChoiceSetID is currently in

use by an active SDLPerformInteraction this call to delete the Choice Set will

fail returning an IN_USE resultCode

Function Group: Base

HMILevel needs to be FULL, LIMITED or BACKGROUD

Since SmartDeviceLink 1.0

see SDLCreateInteractionChoiceSet SDLPerformInteraction

-initWithId:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)choiceId;

SWIFT

init(id choiceId: UInt32)

interactionChoiceSetID

a unique ID that identifies the Choice Set @discussion a unique ID that

identifies the Choice Set

Notes: Min Value: 0; Max Value: 2000000000

SDLDeleteSubMenu Class Reference

Section Contents

• -initWithId:

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull interactionChoiceSetID;

SWIFT

var interactionChoiceSetID: NSNumber & SDLInt { get set }

• menuID

Overview

Deletes a submenu from the Command Menu

Notes: When an app deletes a submenu that has child commands, those child

commands are also deleted

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 1.0

see SDLAddCommand SDLAddSubMenu SDLDeleteCommand

-initWithId:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)menuId;

SWIFT

init(id menuId: UInt32)

menuID

the MenuID that identifies the SDLSubMenu to be delete @discussion Notes:

Min Value: 0; Max Value: 2000000000

SDLDeviceInfo Class Reference

Section Contents

• +currentDevice• hardware• firmwareRev• os• osVersion• carrier

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull menuID;

SWIFT

var menuID: NSNumber & SDLInt { get set }

• maxNumberRFCOMMPorts

Overview

Various information about connecting device. Referenced in

RegisterAppInterface

+currentDevice

Undocumented

hardware

Device model

Optional

OBJECTIVE-C

+ (instancetype)currentDevice;

SWIFT

class func currentDevice() -> Self

firmwareRev

Device firmware version

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *hardware;

SWIFT

var hardware: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *firmwareRev;

os

Device OS

Optional

osVersion

Device OS version

Optional

SWIFT

var firmwareRev: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *os;

SWIFT

var os: String? { get set }

carrier

Device mobile carrier

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *osVersion;

SWIFT

var osVersion: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *carrier;

SWIFT

var carrier: String? { get set }

maxNumberRFCOMMPorts

Number of bluetooth RFCOMM ports available.

Omitted if not connected via BT or on iOS

Optional

SDLDeviceStatus Class Reference

Section Contents

• voiceRecOn• btIconOn• callActive

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *maxNumberRFCOMMPorts;

SWIFT

var maxNumberRFCOMMPorts: (NSNumber & SDLInt)? { get set }

• phoneRoaming• textMsgAvailable• battLevelStatus• stereoAudioOutputMuted• monoAudioOutputMuted• signalLevelStatus• primaryAudioSource• eCallEventActive

Overview

Describes the status related to a connected mobile device or SDL and if or how

it is represented in the vehicle.

@since SDL 2.0

voiceRecOn

Indicates whether the voice recognition is on or off

Required, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull voiceRecOn;

SWIFT

var voiceRecOn: NSNumber & SDLBool { get set }

btIconOn

Indicates whether the bluetooth connection established

Required, Boolean

callActive

Indicates whether a call is being active

Required, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull btIconOn;

SWIFT

var btIconOn: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull callActive;

phoneRoaming

Indicates whether the phone is in roaming mode

Required, Boolean

textMsgAvailable

Indicates whether a textmessage is available

Required, Boolean

SWIFT

var callActive: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull phoneRoaming;

SWIFT

var phoneRoaming: NSNumber & SDLBool { get set }

battLevelStatus

Battery level status

SeeSDLDeviceLevelStatus Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull textMsgAvailable;

SWIFT

var textMsgAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLDeviceLevelStatus _Nonnull battLevelStatus;

stereoAudioOutputMuted

The status of the stereo audio output channel

Required, Boolean

monoAudioOutputMuted

The status of the mono audio output channel

Required, Boolean

SWIFT

var battLevelStatus: SDLDeviceLevelStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull stereoAudioOutputMuted;

SWIFT

var stereoAudioOutputMuted: NSNumber & SDLBool { get set }

signalLevelStatus

Signal level status

SeeSDLDeviceLevelStatus Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull monoAudioOutputMuted;

SWIFT

var monoAudioOutputMuted: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLDeviceLevelStatus _Nonnull signalLevelStatus;

primaryAudioSource

The current primary audio source of SDL (if selected).

SeeSDLPrimaryAudioSource Required

eCallEventActive

Indicates if an emergency call is active

SWIFT

var signalLevelStatus: SDLDeviceLevelStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLPrimaryAudioSource _Nonnull primaryAudioSource;

SWIFT

var primaryAudioSource: SDLPrimaryAudioSource { get set }

Required, Boolean

SDLDiagnosticMessage Class Reference

Section Contents

• -initWithTargetId:length:data:• targetID• messageLength• messageData

Overview

Non periodic vehicle diagnostic request

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull eCallEventActive;

SWIFT

var eCallEventActive: NSNumber & SDLBool { get set }

@since SDL 3.0

-initWithTargetId:length:data:

Undocumented

targetID

Name of target ECU

Required, Integer, 0 - 65535

OBJECTIVE-C

- (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray<NSNumber<SDLUInt> *> *)data;

SWIFT

init(targetId: UInt16, length: UInt16, data: [NSNumber & SDLUInt])

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull targetID;

messageLength

Length of message (in bytes)

Required, Integer, 65535

messageData

Array of bytes comprising CAN message.

SWIFT

var targetID: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull messageLength;

SWIFT

var messageLength: NSNumber & SDLInt { get set }

Required, Array of NSNumber (Integers), Array size 1 - 65535, Integer Size 0 -

255

SDLDiagnosticMessageResponse ClassReference

Section Contents

• messageDataResult

Overview

Response to SDLDiagnosticMessage

Since SmartDeviceLink 3.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *_Nonnull messageData;

SWIFT

var messageData: [NSNumber & SDLInt] { get set }

messageDataResult

Array of bytes comprising CAN message result.

Required

SDLDialNumber Class Reference

Section Contents

• -initWithNumber:

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *_Nonnull messageDataResult;

SWIFT

var messageDataResult: [NSNumber & SDLInt] { get set }

• number

Overview

This RPC is used to tell the head unit to use bluetooth to dial a phone number

using the phone.

@since SDL 4.0

-initWithNumber:

Undocumented

number

Up to 40 character string representing the phone number. All characters

stripped except for ‘0’-‘9’, ‘*’, ‘#’, ‘,’, ‘;’, and ‘+’

OBJECTIVE-C

- (instancetype)initWithNumber:(NSString *)number;

SWIFT

init(number: String)

SDLDisplayCapabilities Class Reference

Section Contents

• displayType• textFields• imageFields• mediaClockFormats• graphicSupported• templatesAvailable• screenParams

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull number;

SWIFT

var number: String { get set }

• numCustomPresetsAvailable

Overview

Contains information about the display for the SDL system to which the

application is currently connected.

@since SDL 1.0

displayType

The type of display

Required

textFields

An array of SDLTextField structures, each of which describes a field in the HMI

which the application can write to using operations such as SDLShow,

SDLSetMediaClockTimer, etc.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLDisplayType _Nonnull displayType;

SWIFT

var displayType: SDLDisplayType { get set }

@discussion This array of SDLTextField structures identify all the text fields to

which the application can write on the current display (identified by

SDLDisplayType).

SeeSDLTextField Required, Array of SDLTextField, 1 - 100 objects

imageFields

An array of SDLImageField elements

@discussion A set of all fields that support images.

SeeSDLImageField Optional, Array of SDLImageField, 1 - 100 objects

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLTextField *> *_Nonnull textFields;

SWIFT

var textFields: [SDLTextField] { get set }

mediaClockFormats

An array of SDLMediaClockFormat elements, defining the valid string formats

used in specifying the contents of the media clock field

SeeSDLMediaClockFormat Required, Array of SDLMediaClockFormats, 0 - 100 objects

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLImageField *> *imageFields;

SWIFT

var imageFields: [SDLImageField]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLMediaClockFormat> *_Nonnull mediaClockFormats;

graphicSupported

The display’s persistent screen supports.

@since SDL 2.0

Required, Boolean

templatesAvailable

Number of presets the screen supports

SWIFT

var mediaClockFormats: [SDLMediaClockFormat] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull graphicSupported;

SWIFT

var graphicSupported: NSNumber & SDLBool { get set }

@discussion The number of on-screen custom presets available (if any)

Optional, Array of String, max string size 100, 0 - 100 objects

screenParams

A set of all parameters related to a prescribed screen area (e.g. for video /

touch input)

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *templatesAvailable;

SWIFT

var templatesAvailable: [String]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLScreenParams *screenParams;

numCustomPresetsAvailable

The number of on-screen custom presets available (if any); otherwise omitted

Optional, Integer 1 - 100

SWIFT

var screenParams: SDLScreenParams? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *numCustomPresetsAvailable;

SWIFT

var numCustomPresetsAvailable: (NSNumber & SDLInt)? { get set }

SDLECallInfo Class Reference

Section Contents

• eCallNotificationStatus• auxECallNotificationStatus• eCallConfirmationStatus

Overview

A vehicle data struct for emergency call information

eCallNotificationStatus

References signal “eCallNotification_4A”. See VehicleDataNotificationStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataNotificationStatus _Nonnull eCallNotificationStatus;

SWIFT

var eCallNotificationStatus: SDLVehicleDataNotificationStatus { get set }

auxECallNotificationStatus

References signal “eCallNotification”. See VehicleDataNotificationStatus.

Required

eCallConfirmationStatus

References signal “eCallConfirmation”. See ECallConfirmationStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataNotificationStatus _Nonnull auxECallNotificationStatus;

SWIFT

var auxECallNotificationStatus: SDLVehicleDataNotificationStatus { get set }

SDLEmergencyEvent Class Reference

Section Contents

• emergencyEventType• fuelCutoffStatus• rolloverEvent• maximumChangeVelocity• multipleEvents

Overview

A vehicle data struct for an emergency event

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLECallConfirmationStatus _Nonnull eCallConfirmationStatus;

SWIFT

var eCallConfirmationStatus: SDLECallConfirmationStatus { get set }

emergencyEventType

References signal “VedsEvntType_D_Ltchd”. See EmergencyEventType.

Required

fuelCutoffStatus

References signal “RCM_FuelCutoff”. See FuelCutoffStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLEmergencyEventType _Nonnull emergencyEventType;

SWIFT

var emergencyEventType: SDLEmergencyEventType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLFuelCutoffStatus _Nonnull fuelCutoffStatus;

rolloverEvent

References signal “VedsEvntRoll_D_Ltchd”. See VehicleDataEventStatus.

Required

maximumChangeVelocity

References signal “VedsMaxDeltaV_D_Ltchd”. Change in velocity in KPH.

Additional reserved values: 0x00 No event, 0xFE Not supported, 0xFF Fault

SWIFT

var fuelCutoffStatus: SDLFuelCutoffStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull rolloverEvent;

SWIFT

var rolloverEvent: SDLVehicleDataEventStatus { get set }

Required

multipleEvents

References signal “VedsMultiEvnt_D_Ltchd”. See VehicleDataEventStatus.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull maximumChangeVelocity;

SWIFT

var maximumChangeVelocity: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataEventStatus _Nonnull multipleEvents;

SDLEncodedSyncPData Class Reference

Section Contents

• data

Overview

Undocumented

data

Contains base64 encoded string of SyncP packets.

Required, Array length 1 - 100, String length 1 - 1,000,000

See

SWIFT

var multipleEvents: SDLVehicleDataEventStatus { get set }

SDLTTSChunk

SDLFile Class Reference

Section Contents

• persistent• overwrite• name• fileURL• data• fileSize• fileType• inputStream• -init• -initWithFileURL:name:persistent:• +persistentFileAtFileURL:name:

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull data;

SWIFT

var data: [String] { get set }

• +fileAtFileURL:name:• -initWithData:name:fileExtension:persistent:• +persistentFileWithData:name:fileExtension:• +fileWithData:name:fileExtension:

Overview

Undocumented

persistent

Whether or not the file should persist on disk between car ignition cycles.

overwrite

Whether or not the file should overwrite an existing file on the remote disk with

the same name.

OBJECTIVE-C

@property (readonly, getter=isPersistent, assign, nonatomic) BOOL persistent;

SWIFT

var isPersistent: Bool { get }

name

The name the file should be stored under on the remote disk. This is how the

file will be referenced in all later calls.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL overwrite;

SWIFT

var overwrite: Bool { get set }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull name;

SWIFT

var name: String { get }

fileURL

The url the local file is stored at while waiting to push it to the remote system. If

the data has not been passed to the file URL, this will be nil.

data

The binary data of the SDLFile. If initialized with data, this will be a relatively

quick call, but if initialized with a file URL, this is a rather expensive call the first

time. The data will be cached in RAM after the first call.

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSURL *fileURL;

SWIFT

var fileURL: URL? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSData *_Nonnull data;

fileSize

The size of the binary data of the SDLFile.

fileType

The system will attempt to determine the type of file that you have passed in. It

will default to BINARY if it does not recognize the file type or the file type is not

supported by SDL.

SWIFT

var data: Data { get }

OBJECTIVE-C

@property (readonly, nonatomic) unsigned long long fileSize;

SWIFT

var fileSize: UInt64 { get }

inputStream

A stream to pull binary data from a SDLFile. The stream only pulls required data

from the file on disk or in memory. This reduces memory usage while uploading

a large file to the remote system as each chunk of data can be released

immediately after it is uploaded.

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLFileType _Nonnull fileType;

SWIFT

var fileType: SDLFileType { get }

OBJECTIVE-C

@property (readonly, nonatomic) NSInputStream *_Nonnull inputStream;

-init

Undocumented

-initWithFileURL:name:persistent:

The designated initializer for an SDL File. The only major property that is not set

using this is “overwrite”, which defaults to NO.

SWIFT

var inputStream: InputStream { get }

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

OBJECTIVE-C

- (nonnull instancetype)initWithFileURL:(nonnull NSURL *)url name:(nonnull NSString *)name persistent:(BOOL)persistent;

url

The file URL pointing to the local data that will be pushed to the remote

system.

name

The name that the file will be stored under on the remote system and

how it will be referenced from the local system. The max file name

length may vary based on remote filesystem limitations.

persistent

Whether or not the file will persist between ignition cycles.

An SDLFile object.

SWIFT

init(fileURL url: URL, name: String, persistent: Bool)

PARAMETERS

RETURN VALUE

+persistentFileAtFileURL:name:

Create an SDL file using a local file URL.

This is a persistent file, it will be persisted through sessions / ignition cycles.

You will only have a limited space for all files, so be sure to only persist files

that are required for all or most sessions. For example, menu artwork should be

persistent.

Ephemeral files should be created using ephemeralFileAtURL:name:

Warning

If this is not a readable file, this will return nil

url

The url to the file that should be uploaded.

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote filesystem limitations.

OBJECTIVE-C

+ (nonnull instancetype)persistentFileAtFileURL:(nonnull NSURL *)url name:(nonnull NSString *)name;

PARAMETERS

An instance of this class, or nil if a readable file at the path could not be found.

+fileAtFileURL:name:

Create an SDL file using a local file URL.

This is an ephemeral file, it will not be persisted through sessions / ignition

cycles. Any files that you do not know you will use in future sessions should be

created through this method. For example, album / artist artwork should be

ephemeral.

Persistent files should be created using persistentFileAtURL:name:

Warning

If this is not a readable file, this will return nil

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)fileAtFileURL:(nonnull NSURL *)url name:(nonnull NSString *)name;

SWIFT

convenience init(atFileURL url: URL, name: String)

url

The url to the file on disk that will be uploaded

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

An instance of this class, or nil if a readable file at the url could not be found.

-initWithData:name:fileExtension:persistent:

Create an SDL file using raw data. It is strongly preferred to pass a file URL

instead of data, as it is currently held in memory until the file is sent.

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithData:(nonnull NSData *)data name:(nonnull NSString *)name fileExtension:(nonnull NSString *)extension persistent:(BOOL)persistent;

data

The raw data to be used for the file

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

extension

The file extension. For example “png”. Currently supported file

extensions are: “bmp”, “jpg”, “jpeg”, “png”, “wav”, “mp3”, “aac”, “

json”. All others will be sent as binary files.

persistent

Whether or not the remote file with this data should be persistent

SWIFT

init(data: Data, name: String, fileExtension extension: String, persistent: Bool)

PARAMETERS

An instance of this class

+persistentFileWithData:name:fileExtension:

Create an SDL file using raw data. It is strongly preferred to pass a file URL

instead of data, as it is currently held in memory until the file is sent.

This is a persistent file, it will be persisted through sessions / ignition cycles.

You will only have a limited space for all files, so be sure to only persist files

that are required for all or most sessions. For example, menu artwork should be

persistent.

data

The raw data to be used for the file

name

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)persistentFileWithData:(nonnull NSData *)data name:(nonnull NSString *)name fileExtension:(nonnull NSString *)extension;

PARAMETERS

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

extension

The file extension. For example “png”. Currently supported file

extensions are: “bmp”, “jpg”, “jpeg”, “png”, “wav”, “mp3”, “aac”, “

json”. All others will be sent as binary files.

An instance of this class

+fileWithData:name:fileExtension:

Create an SDL file using raw data. It is strongly preferred to pass a file URL

instead of data, as it is currently held in memory until the file is sent.

This is an ephemeral file, it will not be persisted through sessions / ignition

cycles. Any files that you do not know you will use in future sessions should be

created through this method. For example, album / artist artwork should be

ephemeral.

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)fileWithData:(nonnull NSData *)data name:(nonnull NSString *)name fileExtension:(nonnull NSString *)extension;

data

The raw data to be used for the file

name

The name of the file that will be used to reference the file in the future

(for example on the remote file system). The max file name length may

vary based on remote file system limitations.

extension

The file extension. For example “png”. Currently supported file

extensions are: “bmp”, “jpg”, “jpeg”, “png”, “wav”, “mp3”, “aac”, “

json”. All others will be sent as binary files.

SWIFT

convenience init(data: Data, name: String, fileExtension extension: String)

PARAMETERS

An instance of this class

SDLFileManager Class Reference

Section Contents

• remoteFileNames• bytesAvailable• currentState• pendingTransactions• suspended• -init• -initWithConnectionManager:• -startWithCompletionHandler:• -stop• -hasUploadedFile:• -deleteRemoteFileWithName:completionHandler:• -deleteRemoteFilesWithNames:completionHandler:• -uploadFile:completionHandler:• -uploadFiles:progressHandler:completionHandler:• -uploadFiles:completionHandler:• -uploadArtwork:completionHandler:• -uploadArtworks:completionHandler:• -uploadArtworks:progressHandler:completionHandler:

RETURN VALUE

• +temporaryFileDirectory

Overview

The SDLFileManager is an RPC manager for the remote file system. After it

starts, it will attempt to communicate with the remote file system to get the

names of all files. Deleting and Uploading will them queue these changes as

transactions. If a delete succeeds, the local list of remote files will remove that

file name, and likewise, if an upload succeeds, the local list of remote files will

now include that file name.

remoteFileNames

A set of all names of files known on the remote head unit. Known files can be

used or deleted on the remote system.

bytesAvailable

The number of bytes still available for files for this app.

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSSet<SDLFileName *> *_Nonnull remoteFileNames;

SWIFT

var remoteFileNames: Set<String> { get }

currentState

The state of the file manager.

OBJECTIVE-C

@property (readonly, assign, nonatomic) NSUInteger bytesAvailable;

SWIFT

var bytesAvailable: UInt { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull currentState;

SWIFT

var currentState: String { get }

pendingTransactions

The currently pending transactions (Upload, Delete, and List Files) in the file

manager

suspended

Whether or not the file manager is suspended. If suspended, the file manager

can continue to queue uploads and deletes, but will not actually perform any of

those until it is no longer suspended. This can be used for throttling down the

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSArray<__kindof NSOperation *> *_Nonnull pendingTransactions;

SWIFT

var pendingTransactions: [Operation] { get }

file manager if other, important operations are taking place over the accessory

connection.

-init

Initialize the class…or not, since this method is unavailable. Dependencies

must be injected using initWithConnectionManager:

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL suspended;

SWIFT

var suspended: Bool { get set }

OBJECTIVE-C

- (nonnull instancetype)init;

nil

-initWithConnectionManager:

Creates a new file manager with a specified connection manager

manager

A connection manager to use to forward on RPCs

An instance of SDLFileManager

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithConnectionManager: (nonnull id<SDLConnectionManagerType>)manager;

PARAMETERS

RETURN VALUE

-startWithCompletionHandler:

The manager stars up and attempts to fetch its initial list and transfer initial

files.

completionHandler

OBJECTIVE-C

- (void)startWithCompletionHandler: (nullable SDLFileManagerStartupCompletionHandler)completionHandler;

SWIFT

func start(completionHandler: SDLFileManagerStartupCompletionHandler? = nil)

PARAMETERS

The handler called when the manager is set up or failed to set up with

an error. Use weak self when accessing self from the completion

handler.

-stop

Cancels all file manager operations and deletes all associated data.

-hasUploadedFile:

Check if the remote system contains a file

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

OBJECTIVE-C

- (BOOL)hasUploadedFile:(nonnull SDLFile *)file;

file

The file to check

Whether or not the remote system has the file

-deleteRemoteFileWithName:completionHandler:

Delete a file stored on the remote system

SWIFT

func hasUploadedFile(_ file: SDLFile) -> Bool

PARAMETERS

RETURN VALUE

name

The name of the remote file. It should be a name currently stored in

remoteFileNames

completion

OBJECTIVE-C

- (void)deleteRemoteFileWithName:(nonnull SDLFileName *)name completionHandler: (nullable SDLFileManagerDeleteCompletionHandler)completion;

SWIFT

func delete(fileName name: String, completionHandler completion: SDLFileManagerDeleteCompletionHandler? = nil)

PARAMETERS

An optional completion handler that sends an error should one occur.

-deleteRemoteFilesWithNames:completionHandler:

Deletes an array of files on the remote file system. The files are deleted in the

order in which they are added to the array, with the first file to be deleted at

index 0. The delete queue is sequential, meaning that once a delete request is

sent to Core, the queue waits until a response is received from Core before the

next the next delete request is sent.

names

OBJECTIVE-C

- (void)deleteRemoteFilesWithNames:(nonnull NSArray<SDLFileName *> *)names completionHandler: (nullable SDLFileManagerMultiDeleteCompletionHandler) completionHandler;

SWIFT

func delete(fileNames names: [String], completionHandler: SDLFileManagerMultiDeleteCompletionHandler? = nil)

PARAMETERS

The names of the files to be deleted

completionHandler

an optional SDLFileManagerMultiDeleteCompletionHandler

-uploadFile:completionHandler:

Upload a file to the remote file system. If a file with the [SDLFile name] already

exists, this will overwrite that file. If you do not want that to happen, check

remoteFileNames before uploading, or change allowOverwrite to NO.

OBJECTIVE-C

- (void)uploadFile:(nonnull SDLFile *)file completionHandler: (nullable SDLFileManagerUploadCompletionHandler)completion;

SWIFT

func upload(file: SDLFile, completionHandler completion: SDLFileManagerUploadCompletionHandler? = nil)

file

An SDLFile that contains metadata about the file to be sent

completion

An optional completion handler that sends an error should one occur.

-uploadFiles:progressHandler:completionHandler:

Uploads an array of files to the remote file system. The files will be uploaded in

the order in which they are added to the array, with the first file to be uploaded

at index 0. The upload queue is sequential, meaning that once a upload request

is sent to Core, the queue waits until a response is received from Core before

the next the next upload request is sent.

The optional progress handler can be used to keep track of the upload progress.

After each file upload, the progress handler returns the upload percentage and

PARAMETERS

an error, if one occured during the upload process. The progress handler also

includes an option to cancel the upload of all remaining files in queue.

files

An array of SDLFiles to be sent

progressHandler

an optional SDLFileManagerMultiUploadProgressHandler

OBJECTIVE-C

- (void)uploadFiles:(nonnull NSArray<SDLFile *> *)files progressHandler: (nullable SDLFileManagerMultiUploadProgressHandler)progressHandler completionHandler: (nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler;

SWIFT

func upload(files: [SDLFile], progressHandler: SDLFileManagerMultiUploadProgressHandler?, completionHandler: SDLFileManagerMultiUploadCompletionHandler? = nil)

PARAMETERS

completionHandler

an optional SDLFileManagerMultiUploadCompletionHandler

-uploadFiles:completionHandler:

Uploads an array of files to the remote file system. The files will be uploaded in

the order in which they are added to the array, with the first file to be uploaded

at index 0. The upload queue is sequential, meaning that once a upload request

is sent to Core, the queue waits until a response is received from Core before

the next the next upload request is sent.

OBJECTIVE-C

- (void)uploadFiles:(nonnull NSArray<SDLFile *> *)files completionHandler: (nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler;

SWIFT

func upload(files: [SDLFile], completionHandler: SDLFileManagerMultiUploadCompletionHandler? = nil)

files

An array of SDLFiles to be sent

completionHandler

An optional SDLFileManagerMultiUploadCompletionHandler

-uploadArtwork:completionHandler:

Uploads an artwork file to the remote file system and returns the name of the

uploaded artwork once completed. If an artwork with the same name is already

on the remote system, the artwork is not uploaded and the artwork name is

simply returned.

PARAMETERS

OBJECTIVE-C

- (void)uploadArtwork:(nonnull SDLArtwork *)artwork completionHandler: (nullable SDLFileManagerUploadArtworkCompletionHandler)completion;

artwork

A SDLArwork containing an image to be sent

completion

An optional completion handler that returns the name of the uploaded

artwork. It also returns an error if the upload fails.

-uploadArtworks:completionHandler:

Uploads an array of artworks to the remote file system. The artworks will be

uploaded in the order in which they are added to the array, with the first file to

be uploaded at index 0. The upload queue is sequential, meaning that once a

SWIFT

func upload(artwork: SDLArtwork, completionHandler completion: SDLFileManagerUploadArtworkCompletionHandler? = nil)

PARAMETERS

upload request is sent to Core, the queue waits until a response is received

from Core before the next the next upload request is sent.

artworks

An array of SDLArtworks to be sent

completion

An optional SDLFileManagerMultiUploadArtworkCompletionHandler

OBJECTIVE-C

- (void)uploadArtworks:(nonnull NSArray<SDLArtwork *> *)artworks completionHandler: (nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion;

SWIFT

func upload(artworks: [SDLArtwork], completionHandler completion: SDLFileManagerMultiUploadArtworkCompletionHandler? = nil)

PARAMETERS

-

uploadArtworks:progressHandler:completionHandler:

Uploads an array of artworks to the remote file system. The artworks will be

uploaded in the order in which they are added to the array, with the first file to

be uploaded at index 0. The upload queue is sequential, meaning that once a

upload request is sent to Core, the queue waits until a response is received

from Core before the next the next upload request is sent.

The optional progress handler can be used to keep track of the upload progress.

After each artwork upload, the progress handler returns the artwork name, the

upload percentage and an error, if one occured during the upload process. The

progress handler also includes an option to cancel the upload of all remaining

files in queue.

OBJECTIVE-C

- (void)uploadArtworks:(nonnull NSArray<SDLArtwork *> *)artworks progressHandler: (nullable SDLFileManagerMultiUploadArtworkProgressHandler) progressHandler completionHandler: (nullable SDLFileManagerMultiUploadArtworkCompletionHandler)completion;

SWIFT

func upload(artworks: [SDLArtwork], progressHandler: SDLFileManagerMultiUploadArtworkProgressHandler?, completionHandler completion: SDLFileManagerMultiUploadArtworkCompletionHandler? = nil)

artworks

An array of SDLArtworks to be sent

progressHandler

An optional SDLFileManagerMultiUploadArtworkProgressHandler

completion

An optional SDLFileManagerMultiUploadArtworkCompletionHandler

+temporaryFileDirectory

A URL to the directory where temporary files are stored. When an SDLFile is

created with NSData, it writes to a temporary file until the file manager finishes

uploading it.

The SDL library manages the creation and deletion of these files and you

should not have to touch this directory at all.

PARAMETERS

OBJECTIVE-C

+ (nonnull NSURL *)temporaryFileDirectory;

An NSURL pointing to the location on disk where SDL’s temporary files are

stored.

SDLGPSData Class Reference

Section Contents

• longitudeDegrees• latitudeDegrees• utcYear• utcMonth• utcDay• utcHours• utcMinutes• utcSeconds• compassDirection• pdop• hdop• vdop• actual

SWIFT

class func temporaryFileDirectory() -> URL

RETURN VALUE

• satellites• dimension• altitude• heading• speed

Overview

Describes the GPS data. Not all data will be available on all carlines.

@since SDL 2.0

longitudeDegrees

longitude degrees

Required, Float, -180 - 180

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull longitudeDegrees;

SWIFT

var longitudeDegrees: NSNumber & SDLFloat { get set }

latitudeDegrees

latitude degrees

Required, Float, -90 - 90

utcYear

utc year

Required, Integer, 2010 - 2100

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull latitudeDegrees;

SWIFT

var latitudeDegrees: NSNumber & SDLFloat { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcYear;

utcMonth

utc month

Required, Integer, 1 - 12

utcDay

utc day

Required, Integer, 1 - 31

SWIFT

var utcYear: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcMonth;

SWIFT

var utcMonth: NSNumber & SDLInt { get set }

utcHours

utc hours

Required, Integer, 0 - 23

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcDay;

SWIFT

var utcDay: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcHours;

utcMinutes

utc minutes

Required, Integer, 0 - 59

utcSeconds

utc seconds

Required, Integer, 0 - 59

SWIFT

var utcHours: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcMinutes;

SWIFT

var utcMinutes: NSNumber & SDLInt { get set }

compassDirection

Potential Compass Directions

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcSeconds;

SWIFT

var utcSeconds: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLCompassDirection _Nonnull compassDirection;

SWIFT

var compassDirection: SDLCompassDirection { get set }

pdop

The 3D positional dilution of precision.

@discussion If undefined or unavailable, then value shall be set to 0

Required, Float, 0.0 - 10.0

hdop

The horizontal dilution of precision

@discussion If undefined or unavailable, then value shall be set to 0

Required, Float, 0.0 - 10.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull pdop;

SWIFT

var pdop: NSNumber & SDLFloat { get set }

vdop

the vertical dilution of precision

@discussion If undefined or unavailable, then value shall be set to 0

Required, Float, 0.0 - 10.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull hdop;

SWIFT

var hdop: NSNumber & SDLFloat { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull vdop;

actual

What the coordinates are based on

@discussion YES, if coordinates are based on satellites. NO, if based on dead

reckoning.

Required, Boolean

SWIFT

var vdop: NSNumber & SDLFloat { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull actual;

SWIFT

var actual: NSNumber & SDLBool { get set }

satellites

The number of satellites in view

Required, Integer, 0 - 31

dimension

The supported dimensions of the GPS

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull satellites;

SWIFT

var satellites: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLDimension _Nonnull dimension;

altitude

Altitude in meters

Required, Float, -10000.0 - 10000.0

heading

Heading based on the GPS data.

@discussion North is 0, East is 90, etc. Resolution is 0.01

SWIFT

var dimension: SDLDimension { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull altitude;

SWIFT

var altitude: NSNumber & SDLFloat { get set }

Required, Float, 0.0 - 359.99

speed

Speed in KPH

Required, Float, 0.0 - 500.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull heading;

SWIFT

var heading: NSNumber & SDLFloat { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull speed;

SDLGetDTCs Class Reference

Section Contents

• -initWithECUName:• -initWithECUName:mask:• ecuName• dtcMask

Overview

This RPC allows to request diagnostic module trouble codes from a certain

vehicle module

Function Group: ProprietaryData

HMILevel needs to be FULL, LIMITED or BACKGROUND

-initWithECUName:

Undocumented

SWIFT

var speed: NSNumber & SDLFloat { get set }

-initWithECUName:mask:

Undocumented

OBJECTIVE-C

- (instancetype)initWithECUName:(UInt16)name;

SWIFT

init(ecuName name: UInt16)

OBJECTIVE-C

- (instancetype)initWithECUName:(UInt16)name mask:(UInt8)mask;

SWIFT

init(ecuName name: UInt16, mask: UInt8)

ecuName

a name of the module to receive the DTC form @discussion an NSNumber value

representing a name of the module to receive the DTC form

Notes: Minvalue:0; Maxvalue:65535

dtcMask

DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask

Minvalue:0; Maxvalue:255

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull ecuName;

SWIFT

var ecuName: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *dtcMask;

SDLGetDTCsResponse Class Reference

Section Contents

• ecuHeader• dtc

Overview

Response to SDLGetDTCs

Since SmartDeviceLink 2.0

ecuHeader

2 byte ECU Header for DTC response (as defined in

VHR_Layout_Specification_DTCs.pdf)

SWIFT

var dtcMask: (NSNumber & SDLInt)? { get set }

dtc

Array of all reported DTCs on module (ecuHeader contains information if list is

truncated). Each DTC is represented by 4 bytes (3 bytes of data and 1 byte

status as defined in VHR_Layout_Specification_DTCs.pdf).

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull ecuHeader;

SWIFT

var ecuHeader: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull dtc;

SDLGetInteriorVehicleData ClassReference

Section Contents

• -initWithModuleType:• -initAndSubscribeToModuleType:• -initAndUnsubscribeToModuleType:• moduleType• subscribe

Overview

Reads the current status value of specified remote control module (type). When

subscribe is true, subscribes for specific remote control module data items.

When subscribe is false, unsubscribes for specific remote control module data

items. Once subscribed, the application will be notified by the

onInteriorVehicleData RPC notification whenever new data is available for the

module.

-initWithModuleType:

Undocumented

SWIFT

var dtc: [String] { get set }

-initAndSubscribeToModuleType:

Undocumented

OBJECTIVE-C

- (instancetype)initWithModuleType:(SDLModuleType)moduleType;

SWIFT

init(moduleType: SDLModuleType)

OBJECTIVE-C

- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType;

SWIFT

init(andSubscribeToModuleType moduleType: SDLModuleType)

-initAndUnsubscribeToModuleType:

Undocumented

moduleType

The type of a RC module to retrieve module data from the vehicle.

OBJECTIVE-C

- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType;

SWIFT

init(andUnsubscribeToModuleType moduleType: SDLModuleType)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleType _Nonnull moduleType;

subscribe

If subscribe is true, the head unit will register onInteriorVehicleData

notifications for the requested moduelType. If subscribe is false, the head unit

will unregister onInteriorVehicleData notifications for the requested

moduelType.

optional, Boolean, default Value = false

SWIFT

var moduleType: SDLModuleType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *subscribe;

SWIFT

var subscribe: (NSNumber & SDLBool)? { get set }

SDLGetInteriorVehicleDataResponseClass Reference

Section Contents

• moduleData• isSubscribed

Overview

A response to SDLGetInteriorVehicleData

moduleData

The requested data

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;

SWIFT

var moduleData: SDLModuleData { get set }

isSubscribed

It is a conditional-mandatory parameter: must be returned in case “subscribe”

parameter was present in the related request.

If “true” - the “moduleType” from request is successfully subscribed and the

head unit will send onInteriorVehicleData notifications for the moduleType.

If “false” - the “moduleType” from request is either unsubscribed or failed to

subscribe.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *isSubscribed;

SWIFT

var isSubscribed: (NSNumber & SDLBool)? { get set }

SDLGetSystemCapability ClassReference

Section Contents

• -initWithType:• systemCapabilityType

Overview

Undocumented

-initWithType:

Undocumented

OBJECTIVE-C

- (instancetype)initWithType:(SDLSystemCapabilityType)type;

SWIFT

init(type: SDLSystemCapabilityType)

systemCapabilityType

They type of capability you’d like to receive in the response.

Mandatory

SDLGetSystemCapabilityResponseClass Reference

Section Contents

• systemCapability

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSystemCapabilityType _Nonnull systemCapabilityType;

SWIFT

var systemCapabilityType: SDLSystemCapabilityType { get set }

Overview

Response to SDLGetSystemCapability

systemCapability

The requested system capability, of the type that was sent in the request

SDLGetVehicleData Class Reference

Section Contents

• -

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSystemCapability *_Nonnull systemCapability;

SWIFT

var systemCapability: SDLSystemCapability { get set }

• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• vin• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle• eCallInfo• airbagStatus• emergencyEvent• clusterModeStatus• myKey

Overview

Requests surrent values of specific published vehicle data items.

Function Group: Location, VehicleInfo and DrivingChara

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 2.0

See SDLSubscribeVehicleData SDLUnsubscribeVehicleData

-

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clu

Undocumented

OBJECTIVE-C

- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus;

SWIFT

init(accelerationPedalPosition: Bool, airbagStatus: Bool, beltStatus: Bool, bodyInformation: Bool, clusterModeStatus: Bool, deviceStatus: Bool, driverBraking: Bool, eCallInfo: Bool, emergencyEvent: Bool, engineTorque: Bool, externalTemperature: Bool, fuelLevel: Bool, fuelLevelState: Bool, gps: Bool, headLampStatus: Bool, instantFuelConsumption: Bool, myKey: Bool, odometer: Bool, prndl: Bool, rpm: Bool, speed: Bool, steeringWheelAngle: Bool, tirePressure: Bool, vin: Bool, wiperStatus: Bool)

gps

A boolean value. If true, requests Gps data

speed

A boolean value. If true, requests speed data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

SWIFT

var gps: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

rpm

A boolean value. If true, requests rpm data

fuelLevel

A boolean value. If true, requests FuelLevel data

SWIFT

var speed: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

SWIFT

var rpm: (NSNumber & SDLBool)? { get set }

fuelLevel_State

A boolean value. If true, requests fuelLevel_State data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

SWIFT

var fuelLevel: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel_State;

SWIFT

var fuelLevel_State: (NSNumber & SDLBool)? { get set }

instantFuelConsumption

A boolean value. If true, requests instantFuelConsumption data

externalTemperature

A boolean value. If true, requests externalTemperature data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *instantFuelConsumption;

SWIFT

var instantFuelConsumption: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature;

vin

A boolean value. If true, requests Vehicle Identification Number

prndl

A boolean value. If true, requests Currently selected gear data

SWIFT

var externalTemperature: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *vin;

SWIFT

var vin: (NSNumber & SDLBool)? { get set }

tirePressure

A boolean value. If true, requests tire pressure status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

SWIFT

var prndl: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *tirePressure;

SWIFT

var tirePressure: (NSNumber & SDLBool)? { get set }

odometer

A boolean value. If true, requests odometer data

beltStatus

A boolean value. If true, requests belt Status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

SWIFT

var odometer: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

bodyInformation

A boolean value. If true, requests body Information data

deviceStatus

A boolean value. If true, requests device Status data

SWIFT

var beltStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *bodyInformation;

SWIFT

var bodyInformation: (NSNumber & SDLBool)? { get set }

driverBraking

A boolean value. If true, requests driver Braking data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *deviceStatus;

SWIFT

var deviceStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *driverBraking;

SWIFT

var driverBraking: (NSNumber & SDLBool)? { get set }

wiperStatus

A boolean value. If true, requests wiper Status data

headLampStatus

A boolean value. If true, requests Head Lamp Status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *wiperStatus;

SWIFT

var wiperStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *headLampStatus;

engineTorque

A boolean value. If true, requests Engine Torque data

accPedalPosition

A boolean value. If true, means the accPedalPosition data has been subscribed.

SWIFT

var headLampStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *engineTorque;

SWIFT

var engineTorque: (NSNumber & SDLBool)? { get set }

steeringWheelAngle

A boolean value. If true, means the steeringWheelAngle data has been

subscribed.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *accPedalPosition;

SWIFT

var accPedalPosition: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *steeringWheelAngle;

eCallInfo

If true, the Emergency Call notification and confirmation data has been

subscribed

airbagStatus

If true, the status of the air bags has been subscribed

SWIFT

var steeringWheelAngle: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *eCallInfo;

SWIFT

var eCallInfo: (NSNumber & SDLBool)? { get set }

emergencyEvent

If true, information related to an emergency event (and if it occurred) has been

subscribed

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *airbagStatus;

SWIFT

var airbagStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *emergencyEvent;

clusterModeStatus

If true, the status modes of the cluster have been subscribed

myKey

If true, information related to the MyKey feature has been subscribed

SWIFT

var emergencyEvent: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *clusterModeStatus;

SWIFT

var clusterModeStatus: (NSNumber & SDLBool)? { get set }

SDLGetVehicleDataResponse ClassReference

Section Contents

• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• vin• prndl• tirePressure

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *myKey;

SWIFT

var myKey: (NSNumber & SDLBool)? { get set }

• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle• eCallInfo• airbagStatus• emergencyEvent• clusterModeStatus• myKey

Overview

Response to SDLGetVehicleData

Since SmartDeviceLink 2.0

gps

The car current GPS coordinates

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLGPSData *gps;

speed

The vehicle speed in kilometers per hour

rpm

The number of revolutions per minute of the engine.

SWIFT

var gps: SDLGPSData? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *speed;

SWIFT

var speed: (NSNumber & SDLFloat)? { get set }

fuelLevel

The fuel level in the tank (percentage)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *rpm;

SWIFT

var rpm: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *fuelLevel;

SWIFT

var fuelLevel: (NSNumber & SDLFloat)? { get set }

fuelLevel_State

The fuel level state

instantFuelConsumption

The instantaneous fuel consumption in microlitres

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLComponentVolumeStatus fuelLevel_State;

SWIFT

var fuelLevel_State: SDLComponentVolumeStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *instantFuelConsumption;

externalTemperature

The external temperature in degrees celsius.

vin

The Vehicle Identification Number

SWIFT

var instantFuelConsumption: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *externalTemperature;

SWIFT

var externalTemperature: (NSNumber & SDLFloat)? { get set }

prndl

The current gear shift state of the user’s vehicle

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *vin;

SWIFT

var vin: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLPRNDL prndl;

SWIFT

var prndl: SDLPRNDL? { get set }

tirePressure

The current pressure warnings for the user’s vehicle

odometer

Odometer reading in km

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTireStatus *tirePressure;

SWIFT

var tirePressure: SDLTireStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *odometer;

beltStatus

The status of the seat belts

bodyInformation

The body information including power modes

SWIFT

var odometer: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLBeltStatus *beltStatus;

SWIFT

var beltStatus: SDLBeltStatus? { get set }

deviceStatus

The IVI system status including signal and battery strength

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLBodyInformation *bodyInformation;

SWIFT

var bodyInformation: SDLBodyInformation? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDeviceStatus *deviceStatus;

SWIFT

var deviceStatus: SDLDeviceStatus? { get set }

driverBraking

The status of the brake pedal

wiperStatus

The status of the wipers

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataEventStatus driverBraking;

SWIFT

var driverBraking: SDLVehicleDataEventStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLWiperStatus wiperStatus;

headLampStatus

Status of the head lamps

engineTorque

Torque value for engine (in Nm) on non-diesel variants

SWIFT

var wiperStatus: SDLWiperStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLHeadLampStatus *headLampStatus;

SWIFT

var headLampStatus: SDLHeadLampStatus? { get set }

accPedalPosition

Accelerator pedal position (percentage depressed)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *engineTorque;

SWIFT

var engineTorque: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *accPedalPosition;

SWIFT

var accPedalPosition: (NSNumber & SDLFloat)? { get set }

steeringWheelAngle

Current angle of the steering wheel (in deg)

eCallInfo

Emergency Call notification and confirmation data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *steeringWheelAngle;

SWIFT

var steeringWheelAngle: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLECallInfo *eCallInfo;

airbagStatus

The status of the air bags

emergencyEvent

Information related to an emergency event (and if it occurred)

SWIFT

var eCallInfo: SDLECallInfo? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAirbagStatus *airbagStatus;

SWIFT

var airbagStatus: SDLAirbagStatus? { get set }

clusterModeStatus

The status modes of the cluster

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLEmergencyEvent *emergencyEvent;

SWIFT

var emergencyEvent: SDLEmergencyEvent? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLClusterModeStatus *clusterModeStatus;

SWIFT

var clusterModeStatus: SDLClusterModeStatus? { get set }

myKey

Information related to the MyKey feature

SDLHMICapabilities Class Reference

Section Contents

• navigation• phoneCall• videoStreaming

Overview

Undocumented

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLMyKey *myKey;

SWIFT

var myKey: SDLMyKey? { get set }

navigation

Availability of built in Nav. True: Available, False: Not Available

Boolean value. Optional.

phoneCall

Availability of built in phone. True: Available, False: Not Available

Boolean value. Optional.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber<SDLBool> *navigation;

SWIFT

@NSCopying var navigation: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber<SDLBool> *phoneCall;

videoStreaming

Availability of built in video streaming. True: Available, False: Not Available

Boolean value. Optional.

SWIFT

@NSCopying var phoneCall: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber<SDLBool> *videoStreaming;

SWIFT

@NSCopying var videoStreaming: (NSNumber & SDLBool)? { get set }

SDLHMIPermissions Class Reference

Section Contents

• allowed• userDisallowed

Overview

Defining sets of HMI levels, which are permitted or prohibited for a given RPC.

@since SDL 2.0

allowed

A set of all HMI levels that are permitted for this given RPC

SeeSDLHMILevel Required, Array of SDLHMILevel, Array size 0 - 100

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLHMILevel> *_Nonnull allowed;

userDisallowed

A set of all HMI levels that are prohibited for this given RPC

SeeSDLHMILevel Required, Array of SDLHMILevel, Array size 0 - 100

SWIFT

var allowed: [SDLHMILevel] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLHMILevel> *_Nonnull userDisallowed;

SWIFT

var userDisallowed: [SDLHMILevel] { get set }

SDLHapticRect Class Reference

Section Contents

• -initWithId:rect:• id• rect

Overview

Defines spatial for each user control object for video streaming application

-initWithId:rect:

Undocumented

OBJECTIVE-C

- (instancetype)initWithId:(UInt32)id rect:(SDLRectangle *)rect;

SWIFT

init(id: UInt32, rect: SDLRectangle)

id

A user control spatial identifier

Required, Integer, 0 - 2,000,000,000

rect

The position of the haptic rectangle to be highlighted. The center of this

rectangle will be “touched” when a press occurs.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLUInt> *_Nonnull id;

SWIFT

var id: NSNumber & SDLUInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLRectangle *_Nonnull rect;

SDLHeadLampStatus Class Reference

Section Contents

• lowBeamsOn• highBeamsOn• ambientLightSensorStatus

Overview

Vehicle data struct for status of head lamps

lowBeamsOn

Low beams are on or off.

Required, boolean

SWIFT

var rect: SDLRectangle { get set }

highBeamsOn

High beams are on or off

Required, boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull lowBeamsOn;

SWIFT

var lowBeamsOn: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull highBeamsOn;

ambientLightSensorStatus

Status of the ambient light senser

Optional

SWIFT

var highBeamsOn: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAmbientLightStatus ambientLightSensorStatus;

SWIFT

var ambientLightSensorStatus: SDLAmbientLightStatus? { get set }

SDLImage Class Reference

Section Contents

• -initWithName:ofType:• -initWithName:• -initWithStaticImageValue:• value• imageType

Overview

Specifies which image shall be used e.g. in SDLAlerts or on SDLSoftbuttons

provided the display supports it.

@since SDL 2.0

-initWithName:ofType:

Undocumented

OBJECTIVE-C

- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType;

-initWithName:

Undocumented

-initWithStaticImageValue:

Undocumented

SWIFT

init(name: String, ofType imageType: SDLImageType)

OBJECTIVE-C

- (instancetype)initWithName:(NSString *)name;

SWIFT

init(name: String)

value

The static hex icon value or the binary image file name identifier (sent by

SDLPutFile)

Required, max length = 65535

OBJECTIVE-C

- (instancetype)initWithStaticImageValue:(UInt16)staticImageValue;

SWIFT

init(staticImageValue: UInt16)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull value;

imageType

Describes whether the image is static or dynamic

Required

SWIFT

var value: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLImageType _Nonnull imageType;

SWIFT

var imageType: SDLImageType { get set }

SDLImageField Class Reference

Section Contents

• name• imageTypeSupported• imageResolution

Overview

A struct used in DisplayCapabilities describing the capability of an image field

name

The name that identifies the field.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLImageFieldName _Nonnull name;

SWIFT

var name: SDLImageFieldName { get set }

imageTypeSupported

The image types that are supported in this field.

Required

imageResolution

The image resolution of this field

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLFileType> *_Nonnull imageTypeSupported;

SWIFT

var imageTypeSupported: [SDLFileType] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImageResolution *imageResolution;

SDLImageResolution Class Reference

Section Contents

• resolutionWidth• resolutionHeight• -initWithWidth:height:

Overview

The resolution of an image

resolutionWidth

Resolution width

Required

SWIFT

var imageResolution: SDLImageResolution? { get set }

resolutionHeight

Resolution height

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull resolutionWidth;

SWIFT

var resolutionWidth: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull resolutionHeight;

-initWithWidth:height:

Undocumented

SWIFT

var resolutionHeight: NSNumber & SDLInt { get set }

OBJECTIVE-C

- (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height;

SWIFT

init(width: UInt16, height: UInt16)

SDLKeyboardProperties Class Reference

Section Contents

• -

initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:• language• keyboardLayout• keypressMode• limitedCharacterList• autoCompleteText

Overview

Configuration of on-screen keyboard (if available)

-

initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText

Undocumented

OBJECTIVE-C

- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText;

language

The keyboard language

Optional

keyboardLayout

Desired keyboard layout

SWIFT

init(language: SDLLanguage?, layout: SDLKeyboardLayout?, keypressMode: SDLKeypressMode?, limitedCharacterList: [String]?, autoCompleteText: String?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLLanguage language;

SWIFT

var language: SDLLanguage? { get set }

Optional

keypressMode

Desired keypress mode.

If omitted, this value will be set to RESEND_CURRENT_ENTRY.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLKeyboardLayout keyboardLayout;

SWIFT

var keyboardLayout: SDLKeyboardLayout? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLKeypressMode keypressMode;

limitedCharacterList

Array of keyboard characters to enable. All omitted characters will be greyed

out (disabled) on the keyboard. If omitted, the entire keyboard will be enabled.

Optional

autoCompleteText

Allows an app to prepopulate the text field with a suggested or completed entry

as the user types

SWIFT

var keypressMode: SDLKeypressMode? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *limitedCharacterList;

SWIFT

var limitedCharacterList: [String]? { get set }

Optional

SDLLifecycleConfiguration ClassReference

Section Contents

• -init• +defaultConfigurationWithAppName:appId:• +debugConfigurationWithAppName:appId:ipAddress:port:• tcpDebugMode• tcpDebugIPAddress• tcpDebugPort• appName• appId

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *autoCompleteText;

SWIFT

var autoCompleteText: String? { get set }

• resumeHash• isMedia• appType• additionalAppTypes• language• languagesSupported• appIcon• shortAppName• ttsName• voiceRecognitionCommandNames

Overview

Configuration options for SDLManager

-init

Undocumented

+defaultConfigurationWithAppName:appId:

A production configuration that runs using IAP. Additional functionality should

be customized on the properties.

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

appName

The name of the app.

appId

The appId to be used. This should be registered with the radio’s

manufacturer.

OBJECTIVE-C

+ (nonnull SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(nonnull NSString *)appName appId:(nonnull NSString *)appId;

SWIFT

/*not inherited*/ init(appName: String, appId: String)

PARAMETERS

The lifecycle configuration

+debugConfigurationWithAppName:appId:ipAddress:port:

A debug configuration that runs using TCP. Additional functionality should be

customized on the properties.

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLifecycleConfiguration *)debugConfigurationWithAppName:(nonnull NSString *)appName appId:(nonnull NSString *)appId ipAddress:(nonnull NSString *)ipAddress port:(UInt16)port;

SWIFT

/*not inherited*/ init(appName: String, appId: String, ipAddress: String, port: UInt16)

appName

The name of the app.

appId

The appId to be used. This should be registered with the radio’s

manufacturer.

ipAddress

The ip address of the server to connect to

port

The port of the server to connect to

The lifecycle configuration

tcpDebugMode

Whether or not debug mode is enabled

PARAMETERS

RETURN VALUE

tcpDebugIPAddress

The ip address at which the library will look for a server

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL tcpDebugMode;

SWIFT

var tcpDebugMode: Bool { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, null_resettable) NSString *tcpDebugIPAddress;

SWIFT

var tcpDebugIPAddress: String! { get }

tcpDebugPort

The port at which the library will look for a server

appName

The full name of the app

OBJECTIVE-C

@property (readonly, assign, nonatomic) UInt16 tcpDebugPort;

SWIFT

var tcpDebugPort: UInt16 { get }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSString *_Nonnull appName;

appId

The app id. This must be the same as the app id received from the SDL

developer portal or OEM.

resumeHash

A hash id which should be passed to the remote system in the

RegisterAppInterface

SWIFT

var appName: String { get set }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull appId;

SWIFT

var appId: String { get }

isMedia

This is an automatically set based on the app type

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *resumeHash;

SWIFT

var resumeHash: String? { get set }

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL isMedia;

SWIFT

var isMedia: Bool { get }

appType

The application type

additionalAppTypes

Additional application types beyond appType

OBJECTIVE-C

@property (readwrite, strong, nonatomic, null_resettable) SDLAppHMIType appType;

SWIFT

var appType: SDLAppHMIType! { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<SDLAppHMIType> *additionalAppTypes;

language

The default language to use

languagesSupported

An array of all the supported languages

SWIFT

var additionalAppTypes: [SDLAppHMIType]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

SWIFT

var language: SDLLanguage { get set }

appIcon

The application icon to be used on an app launching screen

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLLanguage> *_Nonnull languagesSupported;

SWIFT

var languagesSupported: [SDLLanguage] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLFile *appIcon;

SWIFT

var appIcon: SDLFile? { get set }

shortAppName

An abbrevited application name that will be used on the app launching screen if

the full one would be truncated

ttsName

A Text to Speech String for voice recognition of the mobile application name.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *shortAppName;

SWIFT

var shortAppName: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsName;

voiceRecognitionCommandNames

Additional voice recognition commands. May not interfere with any other app

name or global commands.

SWIFT

var ttsName: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *voiceRecognitionCommandNames;

SWIFT

var voiceRecognitionCommandNames: [String]? { get set }

SDLLifecycleConfigurationUpdate ClassReference

Section Contents

• appName• shortAppName• ttsName• voiceRecognitionCommandNames• -

initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:

Overview

Configuration update options for SDLManager. This class can be used to update

the lifecycle configuration in cases the language of the head unit changes or

does not match the app language.

appName

The full name of the app to that the configuration should be updated to.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *appName;

shortAppName

An abbrevited application name that will be used on the app launching screen if

the full one would be truncated.

ttsName

A Text to Speech String for voice recognition of the mobile application name.

SWIFT

var appName: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *shortAppName;

SWIFT

var shortAppName: String? { get set }

voiceRecognitionCommandNames

Additional voice recognition commands. May not interfere with any other app

name or global commands.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsName;

SWIFT

var ttsName: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *voiceRecognitionCommandNames;

-

initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:

Initializes and returns a newly allocated lifecycle configuration update object

with the specified app data. This is a convenience initializer for -init.

SWIFT

var voiceRecognitionCommandNames: [String]? { get set }

OBJECTIVE-C

- (nonnull instancetype)initWithAppName:(nullable NSString *)appName shortAppName:(nullable NSString *)shortAppName ttsName: (nullable NSArray<SDLTTSChunk *> *)ttsName voiceRecognitionCommandNames: (nullable NSArray<NSString *> *)voiceRecognitionCommandNames;

SWIFT

init(appName: String?, shortAppName: String?, ttsName: [SDLTTSChunk]?, voiceRecognitionCommandNames: [String]?)

appName

The full name of the app to that the configuration should be updated

to.

shortAppName

An abbrevited application name that will be used on the app launching

screen if the full one would be truncated.

ttsName

A Text to Speech String for voice recognition of the mobile application

name.

voiceRecognitionCommandNames

Additional voice recognition commands. May not interfere with any

other app name or global commands.

SDLListFilesResponse Class Reference

Section Contents

• filenames• spaceAvailable

PARAMETERS

Overview

Response to SDLListFiles

Since SmartDeviceLink 2.0

filenames

An array of all filenames resident on the module for the given registered app. If

omitted, then no files currently reside on the system.

spaceAvailable

Provides the total local space available on the module for the registered app.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *filenames;

SWIFT

var filenames: [String]? { get set }

SDLLocationCoordinate Class Reference

Section Contents

• latitudeDegrees• longitudeDegrees

Overview

Describes a coordinate on earth

latitudeDegrees

Latitude of the location

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull spaceAvailable;

SWIFT

var spaceAvailable: NSNumber & SDLInt { get set }

Required, Double -90 - 90

longitudeDegrees

Longitude of the location

Required, Double -180 - 180

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *_Nonnull latitudeDegrees;

SWIFT

@NSCopying var latitudeDegrees: NSNumber & SDLFloat { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *_Nonnull longitudeDegrees;

SDLLocationDetails Class Reference

Section Contents

• coordinate• locationName• addressLines• locationDescription• phoneNumber• locationImage• searchAddress

Overview

Describes a location, including its coordinate, name, etc. Used in WayPoints.

coordinate

Latitude/Longitude of the location

SeeSDLLocationCoordinate Optional

SWIFT

@NSCopying var longitudeDegrees: NSNumber & SDLFloat { get set }

locationName

Name of location.

Optional, Max length 500 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLLocationCoordinate *coordinate;

SWIFT

var coordinate: SDLLocationCoordinate? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *locationName;

addressLines

Location address for display purposes only.

Optional, Array of Strings, Array length 0 - 4, Max String length 500

locationDescription

Description intended location / establishment.

Optional, Max length 500 chars

SWIFT

var locationName: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *addressLines;

SWIFT

var addressLines: [String]? { get set }

phoneNumber

Phone number of location / establishment.

Optional, Max length 500 chars

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *locationDescription;

SWIFT

var locationDescription: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *phoneNumber;

locationImage

Image / icon of intended location.

SeeSDLImage Optional

searchAddress

Address to be used by navigation engines for search.

See

SWIFT

var phoneNumber: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *locationImage;

SWIFT

var locationImage: SDLImage? { get set }

SDLOASISAddress Optional

SDLLockScreenConfiguration ClassReference

Section Contents

• showInOptionalState• enableAutomaticLockScreen• backgroundColor• appIcon• customViewController• -init• +disabledConfiguration• +enabledConfiguration

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLOasisAddress *searchAddress;

SWIFT

var searchAddress: SDLOasisAddress? { get set }

• +enabledConfigurationWithAppIcon:backgroundColor:• +enabledConfigurationWithViewController:

Overview

Undocumented

showInOptionalState

Whether or not the lock screen should be shown in the “lock screen optional”

state. Defaults to ‘NO’.

enableAutomaticLockScreen

If YES, the lock screen should be managed by SDL and automatically engage

when necessary. If NO, then the lock screen will never be engaged.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL showInOptionalState;

SWIFT

var showInOptionalState: Bool { get set }

backgroundColor

The background color of the lock screen. This could be a branding color, or

leave at the default for a dark blue-gray.

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL enableAutomaticLockScreen;

SWIFT

var enableAutomaticLockScreen: Bool { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) UIColor *_Nonnull backgroundColor;

appIcon

Your app icon as it will appear on the lock screen.

customViewController

A custom view controller that the lock screen will manage the presentation of.

SWIFT

@NSCopying var backgroundColor: UIColor { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) UIImage *appIcon;

SWIFT

@NSCopying var appIcon: UIImage? { get }

-init

Undocumented

+disabledConfiguration

Use this configuration if you wish to manage a lock screen yourself. This may

be useful if the automatic presentation feature of SDLLockScreenManager is

failing for some reason.

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) UIViewController *customViewController;

SWIFT

var customViewController: UIViewController? { get }

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

The configuration

+enabledConfiguration

Use this configuration for the basic default lock screen. A custom app icon will

not be used.

OBJECTIVE-C

+ (nonnull instancetype)disabledConfiguration;

SWIFT

class func disabled() -> Self

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)enabledConfiguration;

The configuration

+enabledConfigurationWithAppIcon:backgroundColor:

Use this configuration to provide a custom lock screen icon and a custom

background color, or nil if you wish to use the default background color. This

will use the default lock screen layout.

SWIFT

class func enabled() -> Self

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)enabledConfigurationWithAppIcon:(nonnull UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor;

lockScreenAppIcon

The app icon to be shown on the lock screen

lockScreenBackgroundColor

The color of the lock screen background

The configuration

+enabledConfigurationWithViewController:

Use this configuration if you wish to provide your own view controller for the

lock screen. This view controller’s presentation and dismissal will still be

managed by the lock screen manager. Note that you may subclass

SWIFT

class func enabledConfiguration(withAppIcon lockScreenAppIcon: UIImage, backgroundColor lockScreenBackgroundColor: UIColor?) -> Self

PARAMETERS

RETURN VALUE

SDLLockScreenViewController and pass it here to continue to have the vehicle

icon set to your view controller by the manager.

viewController

The view controller to be managed

The configuration

OBJECTIVE-C

+ (nonnull instancetype)enabledConfigurationWithViewController: (nonnull UIViewController *)viewController;

SWIFT

class func enabledConfiguration(with viewController: UIViewController) -> Self

PARAMETERS

RETURN VALUE

SDLLockScreenViewController ClassReference

Section Contents

• appIcon• vehicleIcon• backgroundColor

Overview

Undocumented

appIcon

The app’s icon. This will be set by the lock screen configuration.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) UIImage *appIcon;

SWIFT

@NSCopying var appIcon: UIImage? { get set }

vehicleIcon

The vehicle’s designated icon. This will be set by the lock screen manager when

it is notified that a lock screen icon has been downloaded.

backgroundColor

The designated background color set in the lock screen configuration, or the

default SDL gray-blue.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) UIImage *vehicleIcon;

SWIFT

@NSCopying var vehicleIcon: UIImage? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) UIColor *backgroundColor;

SDLLogConfiguration Class Reference

Section Contents

• modules• targets• filters• formatType• asynchronous• errorsAsynchronous• globalLogLevel• +defaultConfiguration• +debugConfiguration

Overview

Undocumented

modules

Any custom logging modules used by the developer’s code. Defaults to none.

SWIFT

@NSCopying var backgroundColor: UIColor? { get set }

targets

Where the logs will attempt to output. Defaults to Console.

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSSet<SDLLogFileModule *> *_Nonnull modules;

SWIFT

var modules: Set<AnyHashable> { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSSet<id<SDLLogTarget>> *_Nonnull targets;

SWIFT

var targets: Set<AnyHashable> { get set }

filters

What log filters will run over this session. Defaults to none.

formatType

How detailed of logs will be output. Defaults to Default.

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSSet<SDLLogFilter *> *_Nonnull filters;

SWIFT

var filters: Set<SDLLogFilter> { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLLogFormatType formatType;

asynchronous

Whether or not logs will be run on a separate queue, asynchronously, allowing

the following code to run before the log completes. Or if it will occur

synchronously, which will prevent logs from being missed, but will slow down

surrounding code. Defaults to YES.

SWIFT

var formatType: SDLLogFormatType { get set }

OBJECTIVE-C

@property (getter=isAsynchronous, assign, readwrite, nonatomic) BOOL asynchronous;

SWIFT

var isAsynchronous: Bool { get set }

errorsAsynchronous

Whether or not error logs will be dispatched to loggers asynchronously. Defaults

to NO.

globalLogLevel

Any modules that do not have an explicitly specified level will by default use

the global log level. Defaults to Error. Do not specify Default for this parameter.

OBJECTIVE-C

@property (getter=areErrorsAsynchronous, assign, readwrite, nonatomic) BOOL errorsAsynchronous;

SWIFT

var areErrorsAsynchronous: Bool { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLLogLevel globalLogLevel;

+defaultConfiguration

A default logger for production. This sets the format type to Default, the log

level to Error, and only enables the ASL logger.

A default configuration that may be customized.

SWIFT

var globalLogLevel: SDLLogLevel { get set }

OBJECTIVE-C

+ (nonnull instancetype)defaultConfiguration;

SWIFT

class func `default`() -> Self

RETURN VALUE

+debugConfiguration

A debug logger for use in development. This sets the format type to Detailed,

the log level to Debug, and enables the Console and ASL loggers.

A debug configuration that may be customized.

OBJECTIVE-C

+ (nonnull instancetype)debugConfiguration;

SWIFT

class func debug() -> Self

RETURN VALUE

SDLLogFileModule Class Reference

Section Contents

• name• files• logLevel• -init• -initWithName:files:level:• -initWithName:files:• +moduleWithName:files:• -containsFile:

Overview

Undocumented

name

The name of the this module, e.g. “Transport”

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull name;

files

All of the files contained within this module. When a log is logged, the

__FILE__ (in Obj-C) or #file (in Swift) is automatically captured and checked

to see if any module has a file in this set that matches. If it does, it will be

logged using the module’s log level and the module’s name will be printed in

the formatted log.

SWIFT

var name: String { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSSet<NSString *> *_Nonnull files;

SWIFT

var files: Set<String> { get }

logLevel

The custom level of the log. This is SDLLogLevelDefault (whatever the current

global log level is) by default.

-init

This method is unavailable and may not be used.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLLogLevel logLevel;

SWIFT

var logLevel: SDLLogLevel { get set }

OBJECTIVE-C

- (nonnull instancetype)init;

Always returns nil

-initWithName:files:level:

Returns an initialized SDLLogFileModule that contains a custom name, set of

files, and associated log level.

name

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name files:(nonnull NSSet<NSString *> *)files level:(SDLLogLevel)level;

SWIFT

init(name: String, files: Set<String>, level: SDLLogLevel)

PARAMETERS

The name of this module. This will be used when printing a formatted

log for a file within this module e.g. “Transport”.

files

The files this module covers. This should correspond to a __FILE__ or

#file call for use when comparing a log to this module. Any log

originating in a file contained in this set will then use this module’s log

level and print the module name.

level

The custom logging level logs originating in files contained in this log

module will use. For example, if the global level is SDLLogLevelError

and this module is configured to SDLLogLevelVerbose , all logs

originating from files within this module will be logged, not merely error

logs.

An initialized SDLLogFileModule

-initWithName:files:

Returns an initialized SDLLogFileModule that contains a custom name and set

of files. The logging level is the same as the current global logging file by using

SDLLogLevelDefault .

RETURN VALUE

name

The name of this module. This will be used when printing a formatted

log for a file within this module e.g. “Transport”.

files

The files this module covers. This should correspond to a __FILE__ or

#file call for use when comparing a log to this module. Any log

originating in a file contained in this set will then use this module’s log

level and print the module name.

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name files:(nonnull NSSet<NSString *> *)files;

SWIFT

convenience init(name: String, files: Set<String>)

PARAMETERS

An initialized SDLLogFileModule

+moduleWithName:files:

Returns an initialized SDLLogFileModule that contains a custom name and set

of files. The logging level is the same as the current global logging file by using

SDLLogLevelDefault .

name

The name of this module. This will be used when printing a formatted

log for a file within this module e.g. “Transport”.

files

The files this module covers. This should correspond to a __FILE__ or

#file call for use when comparing a log to this module. Any log

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)moduleWithName:(nonnull NSString *)name files:(nonnull NSSet<NSString *> *)files;

PARAMETERS

originating in a file contained in this set will then use this module’s log

level and print the module name.

An initialized SDLLogFileModule

-containsFile:

Returns whether or not this module contains a given file.

fileName

RETURN VALUE

OBJECTIVE-C

- (BOOL)containsFile:(nonnull NSString *)fileName;

SWIFT

func containsFile(_ fileName: String) -> Bool

PARAMETERS

The file name to check

A BOOL, YES if this module contains the given file.

SDLLogFilter Class Reference

Section Contents

• filter• -init• -initWithCustomFilter:• +filterByDisallowingString:caseSensitive:• +filterByAllowingString:caseSensitive:• +filterByDisallowingRegex:• +filterByAllowingRegex:• +filterByDisallowingModules:• +filterByAllowingModules:• +filterByDisallowingFileNames:• +filterByAllowingFileNames:

Overview

Undocumented

filter

Undocumented

RETURN VALUE

-init

Undocumented

-initWithCustomFilter:

Create a new filter with a custom filter block. The filter block will take a log

model and return a BOOL of pass / fail.

OBJECTIVE-C

@property (strong, nonatomic, readonly) SDLLogFilterBlock filter

SWIFT

var filter: SDLLogFilterBlock { get }

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

filter

The custom filter to be used

An instance of SDLLogFilter

OBJECTIVE-C

- (nonnull instancetype)initWithCustomFilter:(nonnull SDLLogFilterBlock)filter;

SWIFT

init(customFilter filter: @escaping SDLLogFilterBlock)

PARAMETERS

RETURN VALUE

+filterByDisallowingString:caseSensitive:

Returns a filter that only allows logs not containing the passed string within

their message.

string

The string, which, if present in the message of the log, will prevent the

log from being logged.

caseSensitive

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByDisallowingString:(nonnull NSString *)string caseSensitive:(BOOL)caseSensitive;

SWIFT

/*not inherited*/ init(byDisallowingString string: String, caseSensitive: Bool)

PARAMETERS

Whether or not string should be checked as case sensitive against the

log’s message.

A filter that may be passed into the logConfiguration .

+filterByAllowingString:caseSensitive:

Returns a filter that only allows logs containing the passed string within their

message.

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByAllowingString:(nonnull NSString *)string caseSensitive:(BOOL)caseSensitive;

SWIFT

/*not inherited*/ init(byAllowing string: String, caseSensitive: Bool)

string

The string, which, if present in the message of the log, will allow the log

to be logged.

caseSensitive

Whether or not string should be checked as case sensitive against the

log’s message.

A filter that may be passed into the logConfiguration .

+filterByDisallowingRegex:

Returns a filter that only allows logs not passing the passed regex against their

message.

PARAMETERS

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByDisallowingRegex: (nonnull NSRegularExpression *)regex;

regex

The regex, which, if it matches the message of the log, will prevent the

log from being logged.

A filter that may be passed into the logConfiguration .

+filterByAllowingRegex:

Returns a filter that only allows logs passing the passed regex against their

message.

SWIFT

/*not inherited*/ init(byDisallowingRegex regex: NSRegularExpression)

PARAMETERS

RETURN VALUE

regex

The regex, which, if it matches the message of the log, will allow the

log to be logged.

A filter that may be passed into the logConfiguration .

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByAllowingRegex: (nonnull NSRegularExpression *)regex;

SWIFT

/*not inherited*/ init(byAllowingRegex regex: NSRegularExpression)

PARAMETERS

RETURN VALUE

+filterByDisallowingModules:

Returns a filter that only allows logs not within the specified file modules to be

logged.

modules

A set of module names. If any match, they will not be logged.

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByDisallowingModules: (nonnull NSSet<NSString *> *)modules;

SWIFT

/*not inherited*/ init(byDisallowingModules modules: Set<String>)

PARAMETERS

A filter that may be passed into the logConfiguration .

+filterByAllowingModules:

Returns a filter that only allows logs of the specified file modules to be logged.

modules

A set of module names. If any match, they will not be logged.

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByAllowingModules: (nonnull NSSet<NSString *> *)modules;

SWIFT

/*not inherited*/ init(byAllowingModules modules: Set<String>)

PARAMETERS

A filter that may be passed into the logConfiguration .

+filterByDisallowingFileNames:

Returns a filter that only allows logs not within the specified files to be logged.

fileNames

If a log matches any of the passed files, the log will not be logged.

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByDisallowingFileNames: (nonnull NSSet<NSString *> *)fileNames;

SWIFT

/*not inherited*/ init(byDisallowingFileNames fileNames: Set<String>)

PARAMETERS

A filter that may be passed into the logConfiguration .

+filterByAllowingFileNames:

Returns a filter that only allows logs within the specified files to be logged.

fileNames

If a log matches any of the passed files, the log will be logged.

RETURN VALUE

OBJECTIVE-C

+ (nonnull SDLLogFilter *)filterByAllowingFileNames: (nonnull NSSet<NSString *> *)fileNames;

SWIFT

/*not inherited*/ init(byAllowingFileNames fileNames: Set<String>)

PARAMETERS

A filter that may be passed into the logConfiguration .

SDLLogManager Class Reference

Section Contents

• modules• targets• filters• globalLogLevel• formatType• asynchronous• errorsAsynchronous• dateFormatter• logQueue• +sharedManager• +setConfiguration:• -setConfiguration:• +logWithLevel:timestamp:file:functionName:line:queue:formatMessage:• -logWithLevel:timestamp:file:functionName:line:queue:formatMessage:• +logWithLevel:timestamp:file:functionName:line:queue:message:• -logWithLevel:timestamp:file:functionName:line:queue:message:• +logBytes:direction:timestamp:file:functionName:line:queue:

RETURN VALUE

• -logBytes:direction:timestamp:file:functionName:line:queue:

Overview

This is the central manager of logging. A developer should not have to interact

with this class, it is exclusively used internally.

modules

Active log modules

targets

Active log targets

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSSet<SDLLogFileModule *> *_Nonnull modules;

SWIFT

var modules: Set<AnyHashable> { get }

filters

Active log filters

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSSet<id<SDLLogTarget>> *_Nonnull targets;

SWIFT

var targets: Set<AnyHashable> { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSSet<SDLLogFilter *> *_Nonnull filters;

SWIFT

var filters: Set<AnyHashable> { get }

globalLogLevel

Any modules that do not have an explicitly specified level will by default use

this log level

formatType

Active log format

OBJECTIVE-C

@property (readonly, assign, nonatomic) SDLLogLevel globalLogLevel;

SWIFT

var globalLogLevel: SDLLogLevel { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) SDLLogFormatType formatType;

asynchronous

Whether or not verbose, debug, and warning logs are logged asynchronously. If

logs are performed async, then some may be missed in the event of a

terminating signal such as an exception, but performance is improved and your

code will not be slowed by logging.

Defaults to TRUE

SWIFT

var formatType: SDLLogFormatType { get }

OBJECTIVE-C

@property (readonly, getter=isAsynchronous, assign, nonatomic) BOOL asynchronous;

SWIFT

var isAsynchronous: Bool { get }

errorsAsynchronous

Whether or not error logs are logged asynchronously. If logs are performed

async, then some may be missed in the event of a terminating signal such as

an exception, but performance is improved and your code will not be slowed by

logging.

Defaults to FALSE

dateFormatter

Active date formatter

OBJECTIVE-C

@property (readonly, getter=areErrorsAsynchronous, assign, nonatomic) BOOL errorsAsynchronous;

SWIFT

var areErrorsAsynchronous: Bool { get }

logQueue

The queue asynchronously logged logs are logged on. Say that 10 times fast.

OBJECTIVE-C

@property (readonly, strong, nonatomic, class) NSDateFormatter *_Nonnull dateFormatter;

SWIFT

class var dateFormatter: DateFormatter { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic, class) dispatch_queue_t _Nonnull logQueue;

SWIFT

unowned(unsafe) class var logQueue: DispatchQueue { get }

+sharedManager

The singleton object

The singleton object

+setConfiguration:

Sets a configuration to be used by the log manager’s sharedManager. This is

generally for internal use and you should set your configuration using

SDLManager’s startWithConfiguration: method.

OBJECTIVE-C

+ (nonnull SDLLogManager *)sharedManager;

SWIFT

class func shared() -> SDLLogManager

RETURN VALUE

configuration

The configuration to be used.

-setConfiguration:

Sets a configuration to be used by the log manager. This is generally for

internal use and you should set your configuration using SDLManager’s

startWithConfiguration: method.

OBJECTIVE-C

+ (void)setConfiguration:(nonnull SDLLogConfiguration *)configuration;

SWIFT

class func setConfiguration(_ configuration: SDLLogConfiguration)

PARAMETERS

configuration

The configuration to be used.

+logWithLevel:timestamp:file:functionName:line:queue:formatMessage:

Log to the sharedManager’s active log targets. This is used internally to log. If

you want to create a log, you should use macros such as SDLLogD .

OBJECTIVE-C

- (void)setConfiguration:(nonnull SDLLogConfiguration *)configuration;

SWIFT

func setConfiguration(_ configuration: SDLLogConfiguration)

PARAMETERS

level

The level of the log

timestamp

The time the log was sent

file

The file the log originated from

functionName

The function the log originated from

line

OBJECTIVE-C

+ (void)logWithLevel:(SDLLogLevel)level timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel formatMessage:(nonnull NSString *)message, ...;

PARAMETERS

The line the log originated from

queueLabel

The queue the log was sent from

message

The message of the log with a format

-

logWithLevel:timestamp:file:functionName:line:queue:formatMessage:

Log to this log manager’s active log targets. This is used internally to log. If you

want to create a log, you should use macros such as SDLLogD .

level

OBJECTIVE-C

- (void)logWithLevel:(SDLLogLevel)level timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel formatMessage:(nonnull NSString *)message, ...;

PARAMETERS

The level of the log

timestamp

The time the log was sent

file

The file the log originated from

functionName

The function the log originated from

line

The line the log originated from

queueLabel

The queue the log was sent from

message

The message of the log with a format

+logWithLevel:timestamp:file:functionName:line:queue:message:

Log to this sharedManager’s active log targets. This is used internally to log. If

you want to create a log, you should use macros such as SDLLogD .

level

The level of the log

timestamp

The time the log was sent

OBJECTIVE-C

+ (void)logWithLevel:(SDLLogLevel)level timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel message:(nonnull NSString *)message;

SWIFT

class func log(with level: SDLLogLevel, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String, message: String)

PARAMETERS

file

The file the log originated from

functionName

The function the log originated from

line

The line the log originated from

queueLabel

The queue the log was sent from

message

The message of the log

-

logWithLevel:timestamp:file:functionName:line:queue:message:

Log to this log manager’s active log targets. This is used internally to log. If you

want to create a log, you should use macros such as SDLLogD .

level

The level of the log

timestamp

The time the log was sent

OBJECTIVE-C

- (void)logWithLevel:(SDLLogLevel)level timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel message:(nonnull NSString *)message;

SWIFT

func log(with level: SDLLogLevel, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String, message: String)

PARAMETERS

file

The file the log originated from

functionName

The function the log originated from

line

The line the log originated from

queueLabel

The queue the log was sent from

message

The message of the log

+logBytes:direction:timestamp:file:functionName:line:queue:

Log to this sharedManager’s active log targets. This is used internally to log.

data

The data to be logged

direction

Whether its transmit or receive data

OBJECTIVE-C

+ (void)logBytes:(nonnull NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel;

SWIFT

class func logBytes(_ data: Data, direction: SDLLogBytesDirection, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String)

PARAMETERS

timestamp

The time the log was sent

file

The file the log originated from

functionName

The function the log originated from

line

The line the log originated from

queueLabel

The queue the log was sent from

-

logBytes:direction:timestamp:file:functionName:line:queue:

Log to this manager’s active log targets. This is used internally to log.

data

The data to be logged

direction

Whether its transmit or receive data

OBJECTIVE-C

- (void)logBytes:(nonnull NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(nonnull NSDate *)timestamp file:(nonnull NSString *)file functionName:(nonnull NSString *)functionName line:(NSInteger)line queue:(nonnull NSString *)queueLabel;

SWIFT

func logBytes(_ data: Data, direction: SDLLogBytesDirection, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String)

PARAMETERS

timestamp

The time the log was sent

file

The file the log originated from

functionName

The function the log originated from

line

The line the log originated from

queueLabel

The queue the log was sent from

SDLManager Class Reference

Section Contents

• configuration• hmiLevel• audioStreamingState• systemContext• fileManager• permissionManager

• streamManager• screenManager• systemCapabilityManager• registerResponse• delegate• pendingRPCTransactions• proxy• -initWithConfiguration:delegate:• -startWithReadyHandler:• -stop• -sendRequest:• -sendRequest:withResponseHandler:• -sendRequests:progressHandler:completionHandler:• -sendSequentialRequests:progressHandler:completionHandler:

Overview

Undocumented

configuration

The configuration the manager was set up with.

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLConfiguration *_Nonnull configuration;

hmiLevel

The current HMI level of the running app.

audioStreamingState

The current audio streaming state of the running app.

SWIFT

@NSCopying var configuration: SDLConfiguration { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) SDLHMILevel hmiLevel;

SWIFT

var hmiLevel: SDLHMILevel? { get }

systemContext

The current system context of the running app.

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLAudioStreamingState _Nonnull audioStreamingState;

SWIFT

var audioStreamingState: SDLAudioStreamingState { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLSystemContext _Nonnull systemContext;

SWIFT

var systemContext: SDLSystemContext { get }

fileManager

The file manager to be used by the running app.

permissionManager

The permission manager monitoring RPC permissions.

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLFileManager *_Nonnull fileManager;

SWIFT

var fileManager: SDLFileManager { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLPermissionManager *_Nonnull permissionManager;

streamManager

The streaming media manager to be used for starting video sessions.

screenManager

The screen manager for sending UI related RPCs.

SWIFT

var permissionManager: SDLPermissionManager { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLStreamingMediaManager *streamManager;

SWIFT

var streamManager: SDLStreamingMediaManager? { get }

systemCapabilityManager

Centralized manager for retrieving all system capabilities.

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLScreenManager *_Nonnull screenManager;

SWIFT

var screenManager: SDLScreenManager { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLSystemCapabilityManager *_Nonnull systemCapabilityManager;

SWIFT

var systemCapabilityManager: SDLSystemCapabilityManager { get }

registerResponse

The response of a register call after it has been received.

delegate

The manager’s delegate.

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLRegisterAppInterfaceResponse *registerResponse;

SWIFT

var registerResponse: SDLRegisterAppInterfaceResponse? { get }

OBJECTIVE-C

@property (readwrite, nonatomic, nullable) id<SDLManagerDelegate> delegate;

pendingRPCTransactions

The currently pending RPC request send transactions

proxy

Undocumented

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSArray<__kindof NSOperation *> *_Nonnull pendingRPCTransactions;

SWIFT

var pendingRPCTransactions: [Operation] { get }

OBJECTIVE-C

@property (strong, nonatomic, readonly, nullable) SDLProxy *proxy

-initWithConfiguration:delegate:

Initialize the manager with a configuration. Call startWithHandler to begin

waiting for a connection.

configuration

Your app’s unique configuration for setup.

delegate

An optional delegate to be notified of hmi level changes and startup

and shutdown. It is recommended that you implement this.

SWIFT

var proxy: SDLProxy? { get }

OBJECTIVE-C

- (nonnull instancetype)initWithConfiguration:(nonnull SDLConfiguration *)configuration delegate:(nullable id<SDLManagerDelegate>)delegate;

PARAMETERS

An instance of SDLManager

-startWithReadyHandler:

Start the manager, which will tell it to start looking for a connection. Once one

does, it will automatically run the setup process and call the readyBlock when

done.

readyHandler

RETURN VALUE

OBJECTIVE-C

- (void)startWithReadyHandler:(nonnull SDLManagerReadyBlock)readyHandler;

SWIFT

func start(readyHandler: @escaping SDLManagerReadyBlock)

PARAMETERS

The block called when the manager is ready to be used or an error

occurs while attempting to become ready.

-stop

Stop the manager, it will disconnect if needed and no longer look for a

connection. You probably don’t need to call this method ever.

If you do call this method, you must wait for SDLManagerDelegate’s

managerDidDisconnect callback to call startWithReadyHandler:.

-sendRequest:

Send an RPC request and don’t bother with the response or error. If you need

the response or error, call sendRequest:withCompletionHandler: instead.

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

request

The RPC request to send

-sendRequest:withResponseHandler:

Send an RPC request and set a completion handler that will be called with the

response when the response returns.

OBJECTIVE-C

- (void)sendRequest:(nonnull SDLRPCRequest *)request;

SWIFT

func send(_ request: SDLRPCRequest)

PARAMETERS

request

The RPC request to send

handler

The handler that will be called when the response returns

-sendRequests:progressHandler:completionHandler:

Send all of the requests given as quickly as possible, but in order. Call the

completionHandler after all requests have either failed or given a response.

OBJECTIVE-C

- (void)sendRequest:(nonnull SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler;

SWIFT

func send(request: SDLRPCRequest, responseHandler handler: SDLResponseHandler? = nil)

PARAMETERS

requests

The requests to be sent

progressHandler

A handler called every time a response is received

OBJECTIVE-C

- (void)sendRequests:(nonnull NSArray<SDLRPCRequest *> *)requests progressHandler: (nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler: (nullable SDLMultipleRequestCompletionHandler)completionHandler;

SWIFT

func send(_ requests: [SDLRPCRequest], progressHandler: SDLMultipleAsyncRequestProgressHandler?, completionHandler: SDLMultipleRequestCompletionHandler? = nil)

PARAMETERS

completionHandler

A handler to call when all requests have been responded to

-

sendSequentialRequests:progressHandler:completionHandler:

Send all of the requests one at a time, with the next one going out only after

the previous one has received a response. Call the completionHandler after all

requests have either failed or given a response.

OBJECTIVE-C

- (void)sendSequentialRequests:(nonnull NSArray<SDLRPCRequest *> *)requests progressHandler: (nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler: (nullable SDLMultipleRequestCompletionHandler)completionHandler;

SWIFT

func sendSequential(requests: [SDLRPCRequest], progressHandler: SDLMultipleSequentialRequestProgressHandler?, completionHandler: SDLMultipleRequestCompletionHandler? = nil)

requests

The requests to be sent

progressHandler

A handler called every time a response is received. Return NO to cancel

any requests that have not yet been sent, YES to continue sending

requests.

completionHandler

A handler to call when all requests have been responded to

SDLMenuCell Class Reference

Section Contents

• title• icon• voiceCommands• handler• subCells• -initWithTitle:icon:voiceCommands:handler:• -initWithTitle:subCells:

PARAMETERS

Overview

Undocumented

title

The cell’s text to be displayed

icon

The cell’s icon to be displayed

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull title;

SWIFT

var title: String { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLArtwork *icon;

voiceCommands

The strings the user can say to activate this voice command

handler

The handler that will be called when the command is activated

SWIFT

var icon: SDLArtwork? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<NSString *> *voiceCommands;

SWIFT

var voiceCommands: [String]? { get }

subCells

If this is non-nil, this cell will be a sub-menu button, displaying the subcells in a

menu when pressed.

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) SDLMenuCellSelectionHandler handler;

SWIFT

var handler: SDLMenuCellSelectionHandler? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLMenuCell *> *subCells;

-initWithTitle:icon:voiceCommands:handler:

Undocumented

-initWithTitle:subCells:

Undocumented

SWIFT

var subCells: [SDLMenuCell]? { get }

OBJECTIVE-C

- (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon voiceCommands:(nullable NSArray<NSString *> *)voiceCommands handler:(SDLMenuCellSelectionHandler)handler;

SWIFT

init(title: String, icon: SDLArtwork?, voiceCommands: [String]?, handler: @escaping SDLMenuCellSelectionHandler)

SDLMenuParams Class Reference

Section Contents

• -initWithMenuName:• -initWithMenuName:parentId:position:• parentID• position• menuName

Overview

Used when adding a sub menu to an application menu or existing sub menu.

@since SDL 1.0

OBJECTIVE-C

- (instancetype)initWithTitle:(NSString *)title subCells:(NSArray<SDLMenuCell *> *)subCells;

SWIFT

init(title: String, subCells: [SDLMenuCell])

-initWithMenuName:

Undocumented

-initWithMenuName:parentId:position:

Undocumented

OBJECTIVE-C

- (instancetype)initWithMenuName:(NSString *)menuName;

SWIFT

init(menuName: String)

OBJECTIVE-C

- (instancetype)initWithMenuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position;

parentID

The unique ID of an existing submenu to which a command will be added

If this element is not provided, the command will be added to the top level of

the Command Menu.

Optional, Integer, 0 - 2,000,000,000

SWIFT

init(menuName: String, parentId: UInt32, position: UInt16)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *parentID;

SWIFT

var parentID: (NSNumber & SDLInt)? { get set }

position

The position within the items of the parent Command Menu

0 will insert at the front, 1 will insert after the first existing element, etc.

Position of any submenu will always be located before the return and exit

options.

If position is greater or equal than the number of items in the parent Command

Menu, the sub menu will be appended to the end of that Command Menu.

If this element is omitted, the entry will be added at the end of the parent

menu.

Optional, Integer, 0 - 1000

menuName

The menu name which appears in menu, representing this command

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *position;

SWIFT

var position: (NSNumber & SDLInt)? { get set }

Required, max length 500 characters

SDLMetadataTags Class Reference

Section Contents

• -initWithTextFieldTypes:mainField2:• -initWithTextFieldTypes:mainField2:mainField3:mainField4:• mainField1• mainField2• mainField3

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

SWIFT

var menuName: String { get set }

• mainField4

Overview

Undocumented

-initWithTextFieldTypes:mainField2:

Constructs a newly allocated SDLMetadataType object with NSArrays

-

initWithTextFieldTypes:mainField2:mainField3:mainField4:

Undocumented

OBJECTIVE-C

- (nonnull instancetype)initWithTextFieldTypes:(nullable NSArray<SDLMetadataType> *)mainField1 mainField2:(nullable NSArray<SDLMetadataType> *)mainField2;

SWIFT

init(textFieldTypes mainField1: [SDLMetadataType]?, mainField2: [SDLMetadataType]?)

mainField1

The type of data contained in the “mainField1” text field.

minsize= 0, maxsize= 5

Optional

OBJECTIVE-C

- (instancetype)initWithTextFieldTypes:(nullable NSArray<SDLMetadataType> *)mainField1 mainField2:(nullable NSArray<SDLMetadataType> *)mainField2 mainField3:(nullable NSArray<SDLMetadataType> *)mainField3 mainField4:(nullable NSArray<SDLMetadataType> *)mainField4;

SWIFT

init(textFieldTypes mainField1: [SDLMetadataType]?, mainField2: [SDLMetadataType]?, mainField3: [SDLMetadataType]?, mainField4: [SDLMetadataType]?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLMetadataType> *mainField1;

mainField2

The type of data contained in the “mainField2” text field.

minsize= 0, maxsize= 5

Optional

mainField3

The type of data contained in the “mainField3” text field.

SWIFT

var mainField1: [SDLMetadataType]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLMetadataType> *mainField2;

SWIFT

var mainField2: [SDLMetadataType]? { get set }

minsize= 0, maxsize= 5

Optional

mainField4

The type of data contained in the “mainField4” text field.

minsize= 0, maxsize= 5

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLMetadataType> *mainField3;

SWIFT

var mainField3: [SDLMetadataType]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLMetadataType> *mainField4;

SDLModuleData Class Reference

Section Contents

• -initWithRadioControlData:• -initWithClimateControlData:• moduleType• radioControlData• climateControlData

Overview

Describes a remote control module’s data

-initWithRadioControlData:

Undocumented

SWIFT

var mainField4: [SDLMetadataType]? { get set }

-initWithClimateControlData:

Undocumented

OBJECTIVE-C

- (instancetype)initWithRadioControlData:(SDLRadioControlData *)radioControlData;

SWIFT

init(radioControlData: SDLRadioControlData)

OBJECTIVE-C

- (instancetype)initWithClimateControlData:(SDLClimateControlData *)climateControlData;

SWIFT

init(climateControlData: SDLClimateControlData)

moduleType

The moduleType indicates which type of data should be changed and identifies

which data object exists in this struct.

For example, if the moduleType is CLIMATE then a “climateControlData” should

exist

Required

radioControlData

The radio control data

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleType _Nonnull moduleType;

SWIFT

var moduleType: SDLModuleType { get set }

climateControlData

The climate control data

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLRadioControlData *radioControlData;

SWIFT

var radioControlData: SDLRadioControlData? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLClimateControlData *climateControlData;

SDLMyKey Class Reference

Section Contents

• e911Override

Overview

Vehicle Data struct

e911Override

Indicates whether e911 override is on. References signal “

MyKey_e911Override_St”. See VehicleDataStatus.

SWIFT

var climateControlData: SDLClimateControlData? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataStatus _Nonnull e911Override;

SDLNavigationCapability ClassReference

Section Contents

• -initWithSendLocation:waypoints:• sendLocationEnabled• getWayPointsEnabled

Overview

Extended capabilities for an onboard navigation system

-initWithSendLocation:waypoints:

Undocumented

SWIFT

var e911Override: SDLVehicleDataStatus { get set }

sendLocationEnabled

Whether or not the SendLocation RPC is enabled.

Boolean, optional

OBJECTIVE-C

- (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled;

SWIFT

init(sendLocation sendLocationEnabled: Bool, waypoints waypointsEnabled: Bool)

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber *sendLocationEnabled;

getWayPointsEnabled

Whether or not Waypoint related RPCs are enabled.

Boolean, optional

SWIFT

@NSCopying var sendLocationEnabled: NSNumber? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber *getWayPointsEnabled;

SWIFT

@NSCopying var getWayPointsEnabled: NSNumber? { get set }

SDLNotificationConstants ClassReference

Section Contents

• +allResponseNames• +allButtonEventNotifications

Overview

Undocumented

+allResponseNames

All of the possible SDL RPC Response notification names

OBJECTIVE-C

+ (nonnull NSArray<SDLNotificationName> *)allResponseNames;

SWIFT

class func allResponseNames() -> [NSNotification.Name]

The names

+allButtonEventNotifications

All of the possible SDL Button event notification names

The names

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLNotificationName> *)allButtonEventNotifications;

SWIFT

class func allButtonEventNotifications() -> [NSNotification.Name]

RETURN VALUE

SDLOasisAddress Class Reference

Section Contents

• -

initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:• -

initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:su• countryName• countryCode• postalCode• administrativeArea• subAdministrativeArea• locality• subLocality• thoroughfare• subThoroughfare

Overview

Struct used in SendLocation describing an address

-

initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:

Undocumented

-

initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:

Undocumented

OBJECTIVE-C

- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode;

SWIFT

init(subThoroughfare: String?, thoroughfare: String?, locality: String?, administrativeArea: String?, postalCode: String?, countryCode: String?)

countryName

Name of the country (localized)

Optional, max length = 200

OBJECTIVE-C

- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality;

SWIFT

init(subThoroughfare: String?, thoroughfare: String?, locality: String?, administrativeArea: String?, postalCode: String?, countryCode: String?, countryName: String?, subAdministrativeArea: String?, subLocality: String?)

countryCode

countryCode of the country(ISO 3166-2)

Optional, max length = 200

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *countryName;

SWIFT

var countryName: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *countryCode;

postalCode

postalCode of location (PLZ, ZIP, PIN, CAP etc.)

Optional, max length = 200

administrativeArea

Portion of country (e.g. state)

Optional, max length = 200

SWIFT

var countryCode: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *postalCode;

SWIFT

var postalCode: String? { get set }

subAdministrativeArea

Portion of administrativeArea (e.g. county)

Optional, max length = 200

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *administrativeArea;

SWIFT

var administrativeArea: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *subAdministrativeArea;

locality

Hypernym for city/village

Optional, max length = 200

subLocality

Hypernym for district

Optional, max length = 200

SWIFT

var subAdministrativeArea: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *locality;

SWIFT

var locality: String? { get set }

thoroughfare

Hypernym for street, road etc.

Optional, max length = 200

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *subLocality;

SWIFT

var subLocality: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *thoroughfare;

subThoroughfare

Portion of thoroughfare (e.g. house number)

Optional, max length = 200

SWIFT

var thoroughfare: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *subThoroughfare;

SWIFT

var subThoroughfare: String? { get set }

SDLOnAppInterfaceUnregistered ClassReference

Section Contents

• reason

Overview

Notifies an application that its interface registration has been terminated. This

means that all SDL resources associated with the application are discarded,

including the Command Menu, Choice Sets, button subscriptions, etc.

For more information about SDL resources related to an interface registration,

see SDLRegisterAppInterface.

@since SDL 1.0

SeeSDLRegisterAppInterface

reason

The reason application’s interface was terminated

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLAppInterfaceUnregisteredReason _Nonnull reason;

SDLOnButtonEvent Class Reference

Section Contents

• buttonName• buttonEventMode• customButtonID

Overview

Notifies application that user has depressed or released a button to which the

application has subscribed.

Further information about button events and button-presses can be found at

SDLSubscribeButton.

HMI Status Requirements:

HMILevel:

• The application will receive SDLOnButtonEvent notifications for all

subscribed buttons when HMILevel is FULL.• The application will receive SDLOnButtonEvent notifications for subscribed

media buttons when HMILevel is LIMITED.

SWIFT

var reason: SDLAppInterfaceUnregisteredReason { get set }

• Media buttons include SEEKLEFT, SEEKRIGHT, TUNEUP, TUNEDOWN, and

PRESET_0-PRESET_9.• The application will not receive SDLOnButtonEvent notification when

HMILevel is BACKGROUND.

AudioStreamingState:

• Any

SystemContext:• MAIN, VR. In MENU, only PRESET buttons.• In VR, pressing any subscribable button will cancel VR.

See

SDLSubscribeButton

@since SDL 1.0

buttonName

The name of the button

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

SWIFT

var buttonName: SDLButtonName { get set }

buttonEventMode

Indicates whether this is an UP or DOWN event

customButtonID

If ButtonName is “CUSTOM_BUTTON”, this references the integer ID passed by

a custom button. (e.g. softButton ID)

@since SDL 2.0

Optional, Integer, 0 - 65536

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonEventMode _Nonnull buttonEventMode;

SWIFT

var buttonEventMode: SDLButtonEventMode { get set }

SDLOnButtonPress Class Reference

Section Contents

• buttonName• buttonPressMode• customButtonID

Overview

Notifies application of button press events for buttons to which the application

is subscribed. SDL supports two button press events defined as follows:

SHORT - Occurs when a button is depressed, then released within two seconds.

The event is considered to occur immediately after the button is released.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *customButtonID;

SWIFT

var customButtonID: (NSNumber & SDLInt)? { get set }

LONG - Occurs when a button is depressed and held for two seconds or more.

The event is considered to occur immediately after the two second threshold

has been crossed, before the button is released.

HMI Status Requirements:

HMILevel:

The application will receive OnButtonPress notifications for all subscribed

buttons when HMILevel is FULL.

The application will receive OnButtonPress notifications for subscribed media

buttons when HMILevel is LIMITED. Media buttons include SEEKLEFT,

SEEKRIGHT, TUNEUP, TUNEDOWN, and PRESET_0-PRESET_9.

The application will not receive OnButtonPress notification when HMILevel is

BACKGROUND or NONE.

AudioStreamingState: Any

SystemContext: MAIN, VR. In MENU, only PRESET buttons. In VR, pressing any

subscribable button will cancel VR.

@since SDL 1.0

buttonName

The button’s name

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

buttonPressMode

Indicates whether this is a LONG or SHORT button press event

Required

customButtonID

If ButtonName is “CUSTOM_BUTTON”, this references the integer ID passed by

a custom button. (e.g. softButton ID)

SWIFT

var buttonName: SDLButtonName { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonPressMode _Nonnull buttonPressMode;

SWIFT

var buttonPressMode: SDLButtonPressMode { get set }

@since SDL 2.0

Optional, Integer 0 - 65536

SDLOnCommand Class Reference

Section Contents

• cmdID• triggerSource

Overview

This is called when a command was selected via VR after pressing the PTT

button, or selected from the menu after pressing the MENU button.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *customButtonID;

SWIFT

var customButtonID: (NSNumber & SDLInt)? { get set }

Note: The sequence of SDLOnHMIStatus and SDLOnCommand notifications for

user-initiated interactions is indeterminate.

@since SDL 1.0

SeeSDLAddCommand SDLDeleteCommand SDLDeleteSubMenu

cmdID

The command ID of the command the user selected. This is the command ID

value provided by the application in the SDLAddCommand operation that

created the command.

triggerSource

Indicates whether command was selected via voice or via a menu selection

(using the OK button).

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

SWIFT

var cmdID: NSNumber & SDLInt { get set }

SDLOnDriverDistraction ClassReference

Section Contents

• state

Overview

Notifies the application of the current driver distraction state (whether driver

distraction rules are in effect, or not).

HMI Status Requirements:

HMILevel: Can be sent with FULL, LIMITED or BACKGROUND

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTriggerSource _Nonnull triggerSource;

SWIFT

var triggerSource: SDLTriggerSource { get set }

AudioStreamingState: Any

SystemContext: Any

@since SDL 1.0

state

The driver distraction state (i.e. whether driver distraction rules are in effect, or

not)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLDriverDistractionState _Nonnull state;

SWIFT

var state: SDLDriverDistractionState { get set }

SDLOnEncodedSyncPData ClassReference

Section Contents

• data• URL• Timeout

Overview

Callback including encoded data of any SyncP packets that SYNC needs to send

back to the mobile device. Legacy / v1 Protocol implementation; responds to

EncodedSyncPData. *** DEPRECATED ***

data

Contains base64 encoded string of SyncP packets.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull data;

URL

If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP

data shall be forwarded to the provided URL.

Timeout

If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP

data shall be forwarded with the provided timeout in seconds.

SWIFT

var data: [String] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *URL;

SWIFT

var url: String? { get set }

SDLOnHMIStatus Class Reference

Section Contents

• hmiLevel• audioStreamingState• systemContext

Overview

• Notifies an application that HMI conditions have changed for the

application. This indicates whether the application can speak phrases,

display text, perform interactions, receive button presses and events,

stream audio, etc. This notification will be sent to the application when

there has been a change in any one or several of the indicated states (

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *Timeout;

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

SDLHMILevel, SDLAudioStreamingState or SDLSystemContext) for the

application.

All three values are, in principle, independent of each other (though there may

be some relationships). A value for one parameter should not be interpreted

from the value of another parameter.

There are no guarantees about the timeliness or latency of the

SDLOnHMIStatus notification. Therefore, for example, information such as

SDLAudioStreamingState may not indicate that the audio stream became

inaudible to the user exactly when the SDLOnHMIStatus notification was

received.

@since SDL 1.0

hmiLevel

SDLHMILevel in effect for the application

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLHMILevel _Nonnull hmiLevel;

SWIFT

var hmiLevel: SDLHMILevel { get set }

audioStreamingState

Current state of audio streaming for the application. When this parameter has a

value of NOT_AUDIBLE, the application must stop streaming audio to SDL.

Informs app whether any currently streaming audio is audible to user (AUDIBLE)

or not (NOT_AUDIBLE). A value of NOT_AUDIBLE means that either the

application’s audio will not be audible to the user, or that the application’s

audio should not be audible to the user (i.e. some other application on the

mobile device may be streaming audio and the application’s audio would be

blended with that other audio).

systemContext

Whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not

(MAIN)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLAudioStreamingState _Nonnull audioStreamingState;

SWIFT

var audioStreamingState: SDLAudioStreamingState { get set }

SDLOnHashChange Class Reference

Section Contents

• hashID

Overview

Notification containing an updated hashID which can be used over connection

cycles (i.e. loss of connection, ignition cycles, etc.). Sent after initial registration

and subsequently after any change in the calculated hash of all persisted app

data.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSystemContext _Nonnull systemContext;

SWIFT

var systemContext: SDLSystemContext { get set }

hashID

Calculated hash ID to be referenced during RegisterAppInterface request.

SDLOnInteriorVehicleData ClassReference

Section Contents

• moduleData

Overview

Notifications when subscribed vehicle data changes.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull hashID;

SWIFT

var hashID: String { get set }

See: SDLSubscribeVehicleData

moduleData

The subscribed module data that changed

SDLOnKeyboardInput Class Reference

Section Contents

• event

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;

SWIFT

var moduleData: SDLModuleData { get set }

• data

Overview

Sent when a keyboard presented by a PerformInteraction has a keyboard input.

event

The type of keyboard input

data

The current keyboard string input from the user

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLKeyboardEvent _Nonnull event;

SWIFT

var event: SDLKeyboardEvent { get set }

SDLOnLanguageChange ClassReference

Section Contents

• language• hmiDisplayLanguage

Overview

Provides information to what language the SDL HMI language was changed

@since SDL 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *data;

SWIFT

var data: String? { get set }

language

Current SDL voice engine (VR+TTS) language

hmiDisplayLanguage

Current display language

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

SWIFT

var language: SDLLanguage { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull hmiDisplayLanguage;

SDLOnLockScreenStatus ClassReference

Section Contents

• driverDistractionStatus• userSelected• lockScreenStatus• hmiLevel

Overview

To help prevent driver distraction, any SmartDeviceLink application is required

to implement a lockscreen that must be enforced while the application is active

on the system while the vehicle is in motion.

This lockscreen must perform the following:

Limit all application control usability from the mobile device with a full-screen

static image overlay or separate view.

For simplicity, the OnLockScreenStatus RPC will be provided via the onOnLoc

kScreenNotification call back. The call back will include the LockScreenStatus

enum which indicates if the lockscreen is required, optional or not required.

SWIFT

var hmiDisplayLanguage: SDLLanguage { get set }

The call back also includes details regarding the current HMI_Status level,

driver distraction status and user selection status of the application.

driverDistractionStatus

Get the current driver distraction status(i.e. whether driver distraction rules are

in effect, or not)

userSelected

Get user selection status for the application (has the app been selected via hmi

or voice command)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull driverDistractionStatus;

SWIFT

var driverDistractionStatus: NSNumber & SDLBool { get set }

lockScreenStatus

Indicates if the lockscreen should be required, optional or off

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull userSelected;

SWIFT

var userSelected: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLockScreenStatus _Nonnull lockScreenStatus;

SWIFT

var lockScreenStatus: SDLLockScreenStatus { get set }

hmiLevel

Get HMILevel in effect for the application

SDLOnPermissionsChange ClassReference

Section Contents

• permissionItem

Overview

Provides update to app of which sets of functions are available

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLHMILevel _Nonnull hmiLevel;

SWIFT

var hmiLevel: SDLHMILevel { get set }

@since SDL 2.0

permissionItem

Describes change in permissions for a given set of RPCs

Required, Array of SDLPermissionItem, Array size 0 - 500

SDLOnSyncPData Class Reference

Section Contents

• URL• Timeout

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLPermissionItem *> *_Nonnull permissionItem;

SWIFT

var permissionItem: [SDLPermissionItem] { get set }

Overview

DEPRECATED

URL

Undocumented

Timeout

Undocumented

OBJECTIVE-C

@property (nullable, strong, nonatomic) NSString *URL

SWIFT

var url: String? { get set }

OBJECTIVE-C

@property (nullable, strong, nonatomic) NSNumber<SDLInt> *Timeout

SDLOnSystemRequest Class Reference

Section Contents

• requestType• url• timeout• fileType• offset• length

Overview

An asynchronous request from the system for specific data from the device or

the cloud or response to a request from the device or cloud Binary data can be

included in hybrid part of message for some requests (such as Authentication

request responses)

requestType

The type of system request.

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

url

Optional URL for HTTP requests. If blank, the binary data shall be forwarded to

the app. If not blank, the binary data shall be forwarded to the url with a

provided timeout in seconds.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLRequestType _Nonnull requestType;

SWIFT

var requestType: SDLRequestType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *url;

timeout

Optional timeout for HTTP requests Required if a URL is provided

fileType

Optional file type (meant for HTTP file requests).

SWIFT

var url: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

offset

Optional offset in bytes for resuming partial data chunks

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLFileType fileType;

SWIFT

var fileType: SDLFileType? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *offset;

SWIFT

var offset: (NSNumber & SDLUInt)? { get set }

length

Optional length in bytes for resuming partial data chunks

SDLOnTBTClientState Class Reference

Section Contents

• state

Overview

Provides applications with notifications specific to the current TBT client status

on the module

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *length;

SWIFT

var length: (NSNumber & SDLUInt)? { get set }

state

Current State of TBT client

SDLOnTouchEvent Class Reference

Section Contents

• type• event

Overview

Notifies about touch events on the screen’s prescribed area during video

streaming

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTBTState _Nonnull state;

SWIFT

var state: SDLTBTState { get set }

type

The type of touch event.

event

List of all individual touches involved in this event.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTouchType _Nonnull type;

SWIFT

var type: SDLTouchType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLTouchEvent *> *_Nonnull event;

SDLOnVehicleData Class Reference

Section Contents

• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• vin• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle• eCallInfo

SWIFT

var event: [SDLTouchEvent] { get set }

• airbagStatus• emergencyEvent• clusterModeStatus• myKey

Overview

Callback for the periodic and non periodic vehicle data read function.

Since SmartDeviceLink 2.0

gps

The car current GPS coordinates

speed

The vehicle speed in kilometers per hour

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLGPSData *gps;

SWIFT

var gps: SDLGPSData? { get set }

rpm

The number of revolutions per minute of the engine.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *speed;

SWIFT

var speed: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *rpm;

SWIFT

var rpm: (NSNumber & SDLInt)? { get set }

fuelLevel

The fuel level in the tank (percentage)

fuelLevel_State

The fuel level state

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *fuelLevel;

SWIFT

var fuelLevel: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLComponentVolumeStatus fuelLevel_State;

instantFuelConsumption

The instantaneous fuel consumption in microlitres

externalTemperature

The external temperature in degrees celsius.

SWIFT

var fuelLevel_State: SDLComponentVolumeStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *instantFuelConsumption;

SWIFT

var instantFuelConsumption: (NSNumber & SDLFloat)? { get set }

vin

The Vehicle Identification Number

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *externalTemperature;

SWIFT

var externalTemperature: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *vin;

SWIFT

var vin: String? { get set }

prndl

The current gear shift state of the user’s vehicle

tirePressure

The current pressure warnings for the user’s vehicle

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLPRNDL prndl;

SWIFT

var prndl: SDLPRNDL? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTireStatus *tirePressure;

odometer

Odometer reading in km

beltStatus

The status of the seat belts

SWIFT

var tirePressure: SDLTireStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *odometer;

SWIFT

var odometer: (NSNumber & SDLInt)? { get set }

bodyInformation

The body information including power modes

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLBeltStatus *beltStatus;

SWIFT

var beltStatus: SDLBeltStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLBodyInformation *bodyInformation;

SWIFT

var bodyInformation: SDLBodyInformation? { get set }

deviceStatus

The IVI system status including signal and battery strength

driverBraking

The status of the brake pedal

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDeviceStatus *deviceStatus;

SWIFT

var deviceStatus: SDLDeviceStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataEventStatus driverBraking;

wiperStatus

The status of the wipers

headLampStatus

Status of the head lamps

SWIFT

var driverBraking: SDLVehicleDataEventStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLWiperStatus wiperStatus;

SWIFT

var wiperStatus: SDLWiperStatus? { get set }

engineTorque

Torque value for engine (in Nm) on non-diesel variants

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLHeadLampStatus *headLampStatus;

SWIFT

var headLampStatus: SDLHeadLampStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *engineTorque;

SWIFT

var engineTorque: (NSNumber & SDLFloat)? { get set }

accPedalPosition

Accelerator pedal position (percentage depressed)

steeringWheelAngle

Current angle of the steering wheel (in deg)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *accPedalPosition;

SWIFT

var accPedalPosition: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *steeringWheelAngle;

eCallInfo

Emergency Call notification and confirmation data

airbagStatus

The status of the air bags

SWIFT

var steeringWheelAngle: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLECallInfo *eCallInfo;

SWIFT

var eCallInfo: SDLECallInfo? { get set }

emergencyEvent

Information related to an emergency event (and if it occurred)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAirbagStatus *airbagStatus;

SWIFT

var airbagStatus: SDLAirbagStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLEmergencyEvent *emergencyEvent;

SWIFT

var emergencyEvent: SDLEmergencyEvent? { get set }

clusterModeStatus

The status modes of the cluster

myKey

Information related to the MyKey feature

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLClusterModeStatus *clusterModeStatus;

SWIFT

var clusterModeStatus: SDLClusterModeStatus? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLMyKey *myKey;

SDLParameterPermissions ClassReference

Section Contents

• allowed• userDisallowed

Overview

Defining sets of parameters, which are permitted or prohibited for a given RPC.

@since SDL 2.0

allowed

A set of all parameters that are permitted for this given RPC.

Required, Array of String, max String length = 100, Array size 0 - 100

SWIFT

var myKey: SDLMyKey? { get set }

userDisallowed

A set of all parameters that are prohibited for this given RPC.

Required, Array of String, max String length = 100, Array size 0 - 100

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull allowed;

SWIFT

var allowed: [String] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull userDisallowed;

SDLPerformAudioPassThru ClassReference

Section Contents

• -initWithSamplingRate:bitsPerSample:audioType:maxDuration:• -

initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:au• -

initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:• -

initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:au• initialPrompt• audioPassThruDisplayText1• audioPassThruDisplayText2• samplingRate• maxDuration• bitsPerSample• audioType• muteAudio

SWIFT

var userDisallowed: [String] { get set }

• audioDataHandler

Overview

This will open an audio pass thru session. By doing so the app can receive

audio data through the vehicle microphone

Function Group: AudioPassThru

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 2.0

See SDLEndAudioPassThru

-

initWithSamplingRate:bitsPerSample:audioType:maxDuration:

Undocumented

OBJECTIVE-C

- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration;

SWIFT

init(samplingRate: SDLSamplingRate, bitsPerSample: SDLBitsPerSample, audioType: SDLAudioType, maxDuration: UInt32)

-

initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:sa

Undocumented

-

initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandle

Undocumented

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio;

SWIFT

init(initialPrompt: String?, audioPassThruDisplayText1: String?, audioPassThruDisplayText2: String?, samplingRate: SDLSamplingRate, bitsPerSample: SDLBitsPerSample, audioType: SDLAudioType, maxDuration: UInt32, muteAudio: Bool)

initialPrompt

initial prompt which will be spoken before opening the audio pass thru session

by SDL @discussion initialPrompt a Vector value represents the initial prompt

which will be spoken before opening the audio pass thru session by SDL

Notes:

• This is an array of text chunks of type TTSChunk• The array must have at least one item• If omitted, then no initial prompt is spoken• Array Minsize: 1

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler;

SWIFT

init(initialPrompt: String?, audioPassThruDisplayText1: String?, audioPassThruDisplayText2: String?, samplingRate: SDLSamplingRate, bitsPerSample: SDLBitsPerSample, audioType: SDLAudioType, maxDuration: UInt32, muteAudio: Bool, audioDataHandler: SDLAudioPassThruHandler? = nil)

• Array Maxsize: 100

audioPassThruDisplayText1

a line of text displayed during audio capture @discussion

audioPassThruDisplayText1 a String value representing the line of text

displayed during audio capture

Notes: Maxlength=500

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *initialPrompt;

SWIFT

var initialPrompt: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *audioPassThruDisplayText1;

audioPassThruDisplayText2

A line of text displayed during audio capture @discussion

audioPassThruDisplayText2 a String value representing the line of text

displayed during audio capture

Notes: Maxlength=500

samplingRate

A samplingRate

SWIFT

var audioPassThruDisplayText1: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *audioPassThruDisplayText2;

SWIFT

var audioPassThruDisplayText2: String? { get set }

@discussion a SamplingRate value representing a 8 or 16 or 22 or 24 khz

maxDuration

the maximum duration of audio recording in milliseconds

@discussion maxDuration an Integer value representing the maximum duration

of audio recording in millisecond

Notes: Minvalue:1; Maxvalue:1000000

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSamplingRate _Nonnull samplingRate;

SWIFT

var samplingRate: SDLSamplingRate { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull maxDuration;

bitsPerSample

the quality the audio is recorded - 8 bit or 16 bit

@discussion a BitsPerSample value representing 8 bit or 16 bit

audioType

an audioType

SWIFT

var maxDuration: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLBitsPerSample _Nonnull bitsPerSample;

SWIFT

var bitsPerSample: SDLBitsPerSample { get set }

muteAudio

a Boolean value representing if the current audio source should be muted

during the APT session

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLAudioType _Nonnull audioType;

SWIFT

var audioType: SDLAudioType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *muteAudio;

audioDataHandler

A handler that will be called whenever an onAudioPassThru notification is

received.

SWIFT

var muteAudio: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAudioPassThruHandler audioDataHandler;

SWIFT

var audioDataHandler: SDLAudioPassThruHandler? { get set }

SDLPerformInteraction Class Reference

Section Contents

• -initWithInteractionChoiceSetId:• -initWithInteractionChoiceSetIdList:• -initWithInitialPrompt:initialText:interactionChoiceSetID:• -initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:• -

initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeo• -

initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeo• -

initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:time• -

initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:time• initialText• initialPrompt• interactionMode• interactionChoiceSetIDList• helpPrompt• timeoutPrompt• timeout• vrHelp• interactionLayout

Overview

Performs an application-initiated interaction in which the user can select a

{@linkplain Choice} from among the specified Choice Sets. For instance, an

application may use a PerformInteraction to ask a user to say the name of a

song to play. The user’s response is only valid if it appears in the specified

Choice Sets and is recognized by SDL

Function Group: Base

HMILevel needs to be FULL

Since SmartDeviceLink 1.0

See SDLCreateInteractionChoiceSet SDLDeleteInteractionChoiceSet

-initWithInteractionChoiceSetId:

Undocumented

-initWithInteractionChoiceSetIdList:

Undocumented

OBJECTIVE-C

- (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId;

SWIFT

init(interactionChoiceSetId: UInt16)

-

initWithInitialPrompt:initialText:interactionChoiceSetID:

Undocumented

OBJECTIVE-C

- (instancetype)initWithInteractionChoiceSetIdList:(NSArray<NSNumber<SDLUInt> *> *)interactionChoiceSetIdList;

SWIFT

init(interactionChoiceSetIdList: [NSNumber & SDLUInt])

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID;

-

initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:

Undocumented

SWIFT

init(initialPrompt: String?, initialText: String, interactionChoiceSetID: UInt16)

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp;

SWIFT

init(initialPrompt: String?, initialText: String, interactionChoiceSetID: UInt16, vrHelp: [SDLVRHelpItem]?)

-

initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeout

Undocumented

-

initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeout

Undocumented

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray<NSNumber<SDLUInt> *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout;

SWIFT

init(initialPrompt: String?, initialText: String, interactionChoiceSetIDList: [NSNumber & SDLUInt], helpPrompt: String?, timeoutPrompt: String?, interactionMode: SDLInteractionMode, timeout: UInt32)

-

initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeout

Undocumented

OBJECTIVE-C

- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray<NSNumber<SDLUInt> *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp;

SWIFT

init(initialPrompt: String?, initialText: String, interactionChoiceSetIDList: [NSNumber & SDLUInt], helpPrompt: String?, timeoutPrompt: String?, interactionMode: SDLInteractionMode, timeout: UInt32, vrHelp: [SDLVRHelpItem]?)

-

initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeout

Undocumented

OBJECTIVE-C

- (instancetype)initWithInitialChunks:(nullable NSArray<SDLTTSChunk *> *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray<NSNumber<SDLUInt> *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray<SDLTTSChunk *> *)helpChunks timeoutChunks:(nullable NSArray<SDLTTSChunk *> *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp;

SWIFT

init(initialChunks: [SDLTTSChunk]?, initialText: String, interactionChoiceSetIDList: [NSNumber & SDLUInt], help helpChunks: [SDLTTSChunk]?, timeoutChunks: [SDLTTSChunk]?, interactionMode: SDLInteractionMode, timeout: UInt32, vrHelp: [SDLVRHelpItem]?)

initialText

The Text that Displayed when the interaction begins. This text may be overlaid

by the “Listening” prompt during the interaction. Text is displayed on first line

OBJECTIVE-C

- (instancetype)initWithInitialChunks:(nullable NSArray<SDLTTSChunk *> *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray<NSNumber<SDLUInt> *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray<SDLTTSChunk *> *)helpChunks timeoutChunks:(nullable NSArray<SDLTTSChunk *> *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout;

SWIFT

init(initialChunks: [SDLTTSChunk]?, initialText: String, interactionChoiceSetIDList: [NSNumber & SDLUInt], help helpChunks: [SDLTTSChunk]?, timeoutChunks: [SDLTTSChunk]?, interactionMode: SDLInteractionMode, timeout: UInt32, vrHelp: [SDLVRHelpItem]?, interactionLayout layout: SDLLayoutMode?)

of multiline display, and is centered. If text does not fit on line, it will be

truncated

initialPrompt

An array of one or more TTSChunks that, taken together, specify what is to be

spoken to the user at the start of an interaction

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull initialText;

SWIFT

var initialText: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *initialPrompt;

interactionMode

The Indicates mode that indicate how user selects interaction choice. User can

choose either by voice (VR_ONLY), by visual selection from the menu

(MANUAL_ONLY), or by either mode (BOTH)

interactionChoiceSetIDList

A Vector value representing an Array of one or more Choice Set IDs

SWIFT

var initialPrompt: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLInteractionMode _Nonnull interactionMode;

SWIFT

var interactionMode: SDLInteractionMode { get set }

helpPrompt

A Vector which taken together, specify the help phrase to be spoken when the

user says “help” during the VR session

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *_Nonnull interactionChoiceSetIDList;

SWIFT

var interactionChoiceSetIDList: [NSNumber & SDLInt] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *helpPrompt;

timeoutPrompt

An array of TTSChunks which, taken together, specify the phrase to be spoken

when the listen times out during the VR session

timeout

An Integer value representing the amount of time, in milliseconds, SDL will wait

for the user to make a choice (VR or Menu)

SWIFT

var helpPrompt: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *timeoutPrompt;

SWIFT

var timeoutPrompt: [SDLTTSChunk]? { get set }

vrHelp

A Voice recognition Help, which is a suggested VR Help Items to display on-

screen during Perform Interaction @since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLVRHelpItem *> *vrHelp;

interactionLayout

Undocumented

SWIFT

var vrHelp: [SDLVRHelpItem]? { get set }

OBJECTIVE-C

@property (nullable, strong, nonatomic) SDLLayoutMode interactionLayout

SWIFT

var interactionLayout: SDLLayoutMode? { get set }

SDLPerformInteractionResponse ClassReference

Section Contents

• choiceID• manualTextEntry• triggerSource

Overview

PerformInteraction Response is sent, when SDLPerformInteraction has been

called

@since SDL 1.0

choiceID

ID of the choice that was selected in response to PerformInteraction. Only is

valid if general result is “success:true”.

Optional, Integer, 0 - 2,000,000,000

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *choiceID;

manualTextEntry

Manually entered text selection, e.g. through keyboard. Can be returned in lieu

of choiceID, depending on the trigger source.

Optional, Max length 500 chars

triggerSource

A SDLTriggerSource object which will be shown in the HMI. Only is valid if

resultCode is SUCCESS.

SWIFT

var choiceID: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *manualTextEntry;

SWIFT

var manualTextEntry: String? { get set }

SDLPermissionItem Class Reference

Section Contents

• rpcName• hmiPermissions• parameterPermissions

Overview

Undocumented

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTriggerSource triggerSource;

SWIFT

var triggerSource: SDLTriggerSource? { get set }

rpcName

Name of the individual RPC in the policy table.

Required

hmiPermissions

HMI Permissions for the individual RPC; i.e. which HMI levels may it be used in

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull rpcName;

SWIFT

var rpcName: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLHMIPermissions *_Nonnull hmiPermissions;

parameterPermissions

RPC parameters for the individual RPC

Required

SWIFT

var hmiPermissions: SDLHMIPermissions { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLParameterPermissions *_Nonnull parameterPermissions;

SWIFT

var parameterPermissions: SDLParameterPermissions { get set }

SDLPermissionManager Class Reference

Section Contents

• -startWithCompletionHandler:• -stop• -isRPCAllowed:• -groupStatusOfRPCs:• -statusOfRPCs:• -addObserverForRPCs:groupType:withHandler:• -removeAllObservers• -removeObserverForIdentifier:

Overview

Undocumented

-startWithCompletionHandler:

Start the manager with a completion block that will be called when startup

completes. This is used internally. To use an SDLPermissionManager, you should

use the manager found on SDLManager .

OBJECTIVE-C

- (void)startWithCompletionHandler: (nonnull void (^)(BOOL, NSError *_Nullable))completionHandler;

completionHandler

The block to be called when the manager’s setup is complete.

-stop

Stop the manager. This method is used internally.

SWIFT

func start(completionHandler: @escaping (Bool, Error?) -> Void)

PARAMETERS

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

-isRPCAllowed:

Determine if an individual RPC is allowed for the current HMI level

rpcName

The name of the RPC to be tested, for example, SDLShow

YES if the RPC is allowed at the current HMI level, NO if not

OBJECTIVE-C

- (BOOL)isRPCAllowed:(nonnull SDLPermissionRPCName)rpcName;

SWIFT

func isRPCAllowed(_ rpcName: String) -> Bool

PARAMETERS

RETURN VALUE

-groupStatusOfRPCs:

Determine if all RPCs are allowed for the current HMI level

rpcNames

The RPCs to check

OBJECTIVE-C

- (SDLPermissionGroupStatus)groupStatusOfRPCs: (nonnull NSArray<SDLPermissionRPCName> *)rpcNames;

SWIFT

func groupStatus(ofRPCs rpcNames: [String]) -> SDLPermissionGroupStatus

PARAMETERS

AllAllowed if all of the permissions are allowed, AllDisallowed if all the

permissions are disallowed, Any if some are allowed, and some are disallowed

-statusOfRPCs:

Retrieve a dictionary with keys that are the passed in RPC names, and objects

of an NSNumber specifying if that RPC is currently allowed

RETURN VALUE

OBJECTIVE-C

- (nonnull NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *)statusOfRPCs:(nonnull NSArray<SDLPermissionRPCName> *)rpcNames;

SWIFT

func status(ofRPCs rpcNames: [String]) -> [String : NSNumber & SDLBool]

rpcNames

An array of RPC names to check

A dictionary specifying if the passed in RPC names are currently allowed or not

-addObserverForRPCs:groupType:withHandler:

Add an observer for specified RPC names, with a callback that will be called

whenever the value changes, as well as immediately with the current status.

Warning

This block will be captured by the SDLPermissionsManager, be sure to use

weakself/strongself if you are referencing self within your observer block.

Warning

The observer may be called before this method returns, do not attempt to

remove the observer from within the observer. That could send nil to

PARAMETERS

RETURN VALUE

removeObserverForIdentifier:. If you want functionality like that, call

groupStatusOfRPCs: instead.

rpcNames

The RPCs to be observed

groupType

Affects the times that the observer block will be called. If Any, any

change to any RPC in rpcNames will cause the observer block to be

called. If AllAllowed, the block will be called when: 1. Every RPC in

OBJECTIVE-C

- (nonnull SDLPermissionObserverIdentifier)addObserverForRPCs:(nonnull NSArray<SDLPermissionRPCName> *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(nonnull SDLPermissionsChangedHandler)handler;

SWIFT

func addObserver(forRPCs rpcNames: [String], groupType: SDLPermissionGroupType, withHandler handler: @escaping SDLPermissionsChangedHandler) -> UUID

PARAMETERS

rpcNames becomes allowed 2. The group of rpcNames goes from all

being allowed to some or all being disallowed.

handler

The block that will be called whenever permissions change.

An identifier that can be passed to removeObserverForIdentifer: to remove the

observer

-removeAllObservers

Remove every current observer

RETURN VALUE

OBJECTIVE-C

- (void)removeAllObservers;

SWIFT

func removeAllObservers()

-removeObserverForIdentifier:

Remove block observers for the specified RPC

identifier

The identifier specifying which observer to remove

OBJECTIVE-C

- (void)removeObserverForIdentifier: (nonnull SDLPermissionObserverIdentifier)identifier;

SWIFT

func removeObserver(forIdentifier identifier: UUID)

PARAMETERS

SDLPhoneCapability Class Reference

Section Contents

• -initWithDialNumber:• dialNumberEnabled

Overview

Extended capabilities of the module’s phone feature

-initWithDialNumber:

Undocumented

OBJECTIVE-C

- (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled;

SWIFT

init(dialNumber dialNumberEnabled: Bool)

dialNumberEnabled

Whether or not the DialNumber RPC is enabled.

Boolean, optional

SDLPinchGesture Class Reference

Section Contents

• -initWithFirstTouch:secondTouch:• firstTouch• secondTouch• distance• center

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber *dialNumberEnabled;

SWIFT

var dialNumberEnabled: NSNumber? { get set }

• isValid

Overview

Undocumented

-initWithFirstTouch:secondTouch:

@abstract Initializes a pinch gesture.

firstTouch

First touch of the gesture

OBJECTIVE-C

- (nonnull instancetype)initWithFirstTouch:(nonnull SDLTouch *)firstTouch secondTouch:(nonnull SDLTouch *)secondTouch;

SWIFT

init(firstTouch: SDLTouch, secondTouch: SDLTouch)

PARAMETERS

secondTouch

Second touch of the gesture

SDLPinchGesture Instance of SDLPinchGesture.

firstTouch

@abstract First touch of a pinch gesture.

secondTouch

@abstract Second touch of a pinch gesture.

RETURN VALUE

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTouch *_Nonnull firstTouch;

SWIFT

var firstTouch: SDLTouch { get set }

distance

@abstract Distance between first and second touches.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTouch *_Nonnull secondTouch;

SWIFT

var secondTouch: SDLTouch { get set }

OBJECTIVE-C

@property (readonly, assign, nonatomic) CGFloat distance;

SWIFT

var distance: CGFloat { get }

center

@abstract Center point between first and second touches.

isValid

@abstract Returns whether or not the pinch gesture is valid. This is true if both

touches are non null.

OBJECTIVE-C

@property (readonly, assign, nonatomic) CGPoint center;

SWIFT

var center: CGPoint { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL isValid;

SDLPresetBankCapabilities ClassReference

Section Contents

• onScreenPresetsAvailable

Overview

Contains information about on-screen preset capabilities.

@since SDL 2.0

onScreenPresetsAvailable

If Onscreen custom presets are available.

Required, Boolean

SWIFT

var isValid: Bool { get }

SDLPutFile Class Reference

Section Contents

• -initWithFileName:fileType:• -initWithFileName:fileType:persistentFile:• -initWithFileName:fileType:persistentFile:systemFile:offset:length:• syncFileName• fileType• persistentFile• systemFile• offset

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull onScreenPresetsAvailable;

SWIFT

var onScreenPresetsAvailable: NSNumber & SDLBool { get set }

• length

Overview

Used to push a binary data onto the SDL module from a mobile device, such as

icons and album art

Since SmartDeviceLink 2.0

SeeSDLDeleteFile SeeSDLListFiles

-initWithFileName:fileType:

Undocumented

-initWithFileName:fileType:persistentFile:

Undocumented

OBJECTIVE-C

- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType;

SWIFT

init(fileName: String, fileType: SDLFileType)

-

initWithFileName:fileType:persistentFile:systemFile:offset:length:

Undocumented

OBJECTIVE-C

- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile;

SWIFT

init(fileName: String, fileType: SDLFileType, persistentFile: Bool)

OBJECTIVE-C

- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length;

syncFileName

A file reference name

Required, maxlength 255 characters

fileType

A FileType value representing a selected file type

SWIFT

init(fileName: String, fileType: SDLFileType, persistentFile: Bool, systemFile: Bool, offset: UInt32, length: UInt32)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

SWIFT

var syncFileName: String { get set }

Required

persistentFile

A value to indicates if the file is meant to persist between sessions / ignition

cycles. If set to TRUE, then the system will aim to persist this file through

session / cycles. While files with this designation will have priority over others,

they are subject to deletion by the system at any time. In the event of

automatic deletion by the system, the app will receive a rejection and have to

resend the file. If omitted, the value will be set to false

Boolean, Optional, default = NO

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLFileType _Nonnull fileType;

SWIFT

var fileType: SDLFileType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *persistentFile;

systemFile

Indicates if the file is meant to be passed through core to elsewhere on the

system. If set to TRUE, then the system will instead pass the data thru as it

arrives to a predetermined area outside of core.

Boolean, Optional, default = NO

offset

Offset in bytes for resuming partial data chunks.

SWIFT

var persistentFile: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *systemFile;

SWIFT

var systemFile: (NSNumber & SDLBool)? { get set }

Integer, Optional, 0 - 100,000,000,000

length

Length in bytes for resuming partial data chunks. If offset is set to 0, then

length is the total length of the file to be downloaded

Integer, Optional, 0 - 100,000,000,000

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *offset;

SWIFT

var offset: (NSNumber & SDLUInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *length;

SDLPutFileResponse Class Reference

Section Contents

• spaceAvailable

Overview

Response to SDLPutFile

Since SmartDeviceLink 2.0

spaceAvailable

Provides the total local space available in SDL Core for the registered app. If the

transfer has systemFile enabled, then the value will be set to 0 automatically.

SWIFT

var length: (NSNumber & SDLUInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull spaceAvailable;

SDLRDSData Class Reference

Section Contents

• -

initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:• programService• radioText• clockText• programIdentification• programType• trafficProgramIdentification• trafficAnnouncementIdentification• region

Overview

Include the data defined in Radio Data System, which is a communications

protocol standard for embedding small amounts of digital information in

conventional FM radio broadcasts.

SWIFT

var spaceAvailable: NSNumber & SDLInt { get set }

-

initWithProgramService:radioText:clockText:programIdentification:programType

Undocumented

programService

Program Service Name

optional, 0-8

OBJECTIVE-C

- (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber<SDLInt> *)programType trafficProgramIdentification:(nullable NSNumber<SDLBool> *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber<SDLBool> *)trafficAnnouncementIdentification region:(nullable NSString *)region;

SWIFT

init(programService: String?, radioText: String?, clockText: String?, programIdentification: String?, programType: (NSNumber & SDLInt)?, trafficProgramIdentification: (NSNumber & SDLBool)?, trafficAnnouncementIdentification: (NSNumber & SDLBool)?, region: String?)

radioText

Radio Text

optional, 0-64

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *programService;

SWIFT

var programService: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *radioText;

clockText

The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD

optional, 0-24

programIdentification

Program Identification - the call sign for the radio station

optional, 0-6

SWIFT

var radioText: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *clockText;

SWIFT

var clockText: String? { get set }

programType

The program type - The region should be used to differentiate between EU and

North America program types

optional, 0-31

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *programIdentification;

SWIFT

var programIdentification: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *programType;

trafficProgramIdentification

Traffic Program Identification - Identifies a station that offers traffic

optional, Boolean

trafficAnnouncementIdentification

Traffic Announcement Identification - Indicates an ongoing traffic

announcement

SWIFT

var programType: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *trafficProgramIdentification;

SWIFT

var trafficProgramIdentification: (NSNumber & SDLBool)? { get set }

optional, Boolean

region

Region

optional, 0-8

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *trafficAnnouncementIdentification;

SWIFT

var trafficAnnouncementIdentification: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *region;

SDLRPCMessage Class Reference

Section Contents

• function• parameters• messageType• -initWithName:• -initWithDictionary:• -getFunctionName• -setFunctionName:• -getParameters:• -setParameters:value:• bulkData• name• messageType

Overview

Undocumented

SWIFT

var region: String? { get set }

function

Undocumented

parameters

Undocumented

messageType

Undocumented

OBJECTIVE-C

NSMutableDictionary<NSString *, id> *function

OBJECTIVE-C

NSMutableDictionary<NSString *, id> *parameters

OBJECTIVE-C

NSString *messageType

-initWithName:

Convenience init

name

The name of the message

A SDLRPCMessage object

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name;

SWIFT

init(name: String)

PARAMETERS

RETURN VALUE

-initWithDictionary:

Convenience init

dict

A dictionary with the format @{messageType: @{parameters}}

A SDLRPCMessage object

OBJECTIVE-C

- (nonnull instancetype)initWithDictionary: (nonnull NSDictionary<NSString *, id> *)dict;

SWIFT

init(dictionary dict: [String : Any])

PARAMETERS

RETURN VALUE

-getFunctionName

Returns the function name.

The function name

-setFunctionName:

Sets the function name.

OBJECTIVE-C

- (nullable NSString *)getFunctionName;

SWIFT

func getFunctionName() -> String?

RETURN VALUE

functionName

The function name

-getParameters:

Returns the value associated with the provided key. If the key does not exist,

null is returned.

OBJECTIVE-C

- (void)setFunctionName:(nullable NSString *)functionName;

SWIFT

func setFunctionName(_ functionName: String?)

PARAMETERS

functionName

The key name

The value associated with the function name

-setParameters:value:

Sets a key-value pair using the function name as the key.

OBJECTIVE-C

- (nullable NSObject *)getParameters:(nonnull NSString *)functionName;

SWIFT

func getParameters(_ functionName: String) -> NSObject?

PARAMETERS

RETURN VALUE

functionName

The name for the key

value

The value associated with the function name

bulkData

The data in the message

OBJECTIVE-C

- (void)setParameters:(nonnull NSString *)functionName value:(nullable NSObject *)value;

SWIFT

func setParameters(_ functionName: String, value: NSObject?)

PARAMETERS

name

The name of the message

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSData *bulkData;

SWIFT

var bulkData: Data? { get set }

OBJECTIVE-C

@property (readonly, strong, nonatomic) NSString *_Nonnull name;

SWIFT

var name: String { get }

messageType

The type of data in the message

SDLRPCNotificationNotification ClassReference

Section Contents

• notification• -initWithName:object:rpcNotification:• -isNotificationMemberOfClass:• -isNotificationKindOfClass:

OBJECTIVE-C

@property (readonly, strong, nonatomic) NSString *_Nonnull messageType;

SWIFT

var messageType: String { get }

Overview

An NSNotification object that makes retrieving internal SDLRPCNotification data

easier

notification

The notification within the userinfo dictionary

-initWithName:object:rpcNotification:

Create an NSNotification object caontaining an SDLRPCNotification

OBJECTIVE-C

@property (readonly, copy, nonatomic) __kindof SDLRPCNotification *_Nonnull notification;

SWIFT

@NSCopying var notification: SDLRPCNotification { get }

name

The NSNotification name

object

The NSNotification object

notification

The SDLRPCNotification payload

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name object:(nullable id)object rpcNotification: (nonnull __kindof SDLRPCNotification *)notification;

SWIFT

init(name: String, object: Any?, rpcNotification notification: SDLRPCNotification)

PARAMETERS

The NSNotification

-isNotificationMemberOfClass:

Returns whether or not the containing notification is equal to a class, not

including subclasses.

aClass

the class you are questioning

RETURN VALUE

OBJECTIVE-C

- (BOOL)isNotificationMemberOfClass:(nonnull Class)aClass;

SWIFT

func isNotificationMember(of aClass: AnyClass) -> Bool

PARAMETERS

-isNotificationKindOfClass:

Returns whether or not the containing notification is a kind of class, including

subclasses.

aClass

the class you are questioning

OBJECTIVE-C

- (BOOL)isNotificationKindOfClass:(nonnull Class)aClass;

SWIFT

func isNotificationKind(of aClass: AnyClass) -> Bool

PARAMETERS

SDLRPCRequest Class Reference

Section Contents

• correlationID

Overview

Undocumented

correlationID

A unique id assigned to message sent to Core. The Correlation ID is used to

map a request to its response.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull correlationID;

SWIFT

var correlationID: NSNumber & SDLInt { get set }

SDLRPCResponse Class Reference

Section Contents

• correlationID• success• resultCode• info

Overview

Undocumented

correlationID

The correlation id of the corresponding SDLRPCRequest.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull correlationID;

SWIFT

var correlationID: NSNumber & SDLInt { get set }

success

Whether or not the SDLRPCRequest was successful.

resultCode

The result of the SDLRPCRequest. If the request failed, the result code contains

the failure reason.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull success;

SWIFT

var success: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLResult _Nonnull resultCode;

info

More detailed success or error message.

SWIFT

var resultCode: SDLResult { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *info;

SWIFT

var info: String? { get set }

SDLRPCResponseNotification ClassReference

Section Contents

• response• -initWithName:object:rpcResponse:• -isResponseMemberOfClass:• -isResponseKindOfClass:

Overview

An NSNotification object that makes retrieving internal SDLRPCResponse data

easier

response

The response within the userinfo dictionary

OBJECTIVE-C

@property (readonly, copy, nonatomic) __kindof SDLRPCResponse *_Nonnull response;

-initWithName:object:rpcResponse:

Create an NSNotification object caontaining an SDLRPCResponse

SWIFT

@NSCopying var response: SDLRPCResponse { get }

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name object:(nullable id)object rpcResponse: (nonnull __kindof SDLRPCResponse *)response;

SWIFT

init(name: String, object: Any?, rpcResponse response: SDLRPCResponse)

name

The NSNotification name

object

The NSNotification object

response

The SDLRPCResponse payload

The NSNotification

-isResponseMemberOfClass:

Returns whether or not the containing response is equal to a class, not

including subclasses.

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (BOOL)isResponseMemberOfClass:(nonnull Class)aClass;

aClass

the class you are questioning

-isResponseKindOfClass:

Returns whether or not the containing response is a kind of class, including

subclasses.

SWIFT

func isResponseMember(of aClass: AnyClass) -> Bool

PARAMETERS

OBJECTIVE-C

- (BOOL)isResponseKindOfClass:(nonnull Class)aClass;

SWIFT

func isResponseKind(of aClass: AnyClass) -> Bool

aClass

the class you are questioning

SDLRPCStruct Class Reference

Section Contents

• store• -initWithDictionary:• -init• -serializeAsDictionary:

Overview

Undocumented

store

Undocumented

PARAMETERS

OBJECTIVE-C

NSMutableDictionary<NSString *, id> *store

-initWithDictionary:

Convenience init

dict

A dictionary

A SDLRPCStruct object

OBJECTIVE-C

- (nonnull instancetype)initWithDictionary: (nonnull NSDictionary<NSString *, id> *)dict;

SWIFT

init(dictionary dict: [String : Any])

PARAMETERS

RETURN VALUE

-init

Init

A SDLRPCStruct object

-serializeAsDictionary:

Converts struct to JSON formatted data

OBJECTIVE-C

- (nonnull instancetype)init;

SWIFT

init()

RETURN VALUE

version

The protocol version

JSON formatted data

OBJECTIVE-C

- (nonnull NSDictionary<NSString *, id> *)serializeAsDictionary:(Byte)version;

SWIFT

func serialize(asDictionary version: UInt8) -> [String : Any]

PARAMETERS

RETURN VALUE

SDLRadioControlCapabilities ClassReference

Section Contents

• -

initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable• moduleName• radioEnableAvailable• radioBandAvailable• radioFrequencyAvailable• hdChannelAvailable• rdsDataAvailable• availableHDsAvailable• stateAvailable• signalStrengthAvailable• signalChangeThresholdAvailable

Overview

Contains information about a radio control module’s capabilities.

-

initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyA

Undocumented

moduleName

The short friendly name of the climate control module.

It should not be used to identify a module by mobile application.

Max string length 100 chars

OBJECTIVE-C

- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable;

SWIFT

init(moduleName: String, radioEnableAvailable: Bool, radioBandAvailable: Bool, radioFrequencyAvailable: Bool, hdChannelAvailable: Bool, rdsDataAvailable: Bool, availableHDsAvailable: Bool, stateAvailable: Bool, signalStrengthAvailable: Bool, signalChangeThresholdAvailable: Bool)

radioEnableAvailable

Availability of the control of enable/disable radio.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull moduleName;

SWIFT

var moduleName: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *radioEnableAvailable;

radioBandAvailable

Availability of the control of radio band.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

radioFrequencyAvailable

Availability of the control of radio frequency.

SWIFT

var radioEnableAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *radioBandAvailable;

SWIFT

var radioBandAvailable: (NSNumber & SDLBool)? { get set }

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

hdChannelAvailable

Availability of the control of HD radio channel.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *radioFrequencyAvailable;

SWIFT

var radioFrequencyAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *hdChannelAvailable;

rdsDataAvailable

Availability of the getting Radio Data System (RDS) data.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

availableHDsAvailable

Availability of the getting the number of available HD channels.

SWIFT

var hdChannelAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rdsDataAvailable;

SWIFT

var rdsDataAvailable: (NSNumber & SDLBool)? { get set }

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

stateAvailable

Availability of the getting the Radio state.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *availableHDsAvailable;

SWIFT

var availableHDsAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *stateAvailable;

signalStrengthAvailable

Availability of the getting the signal strength.

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

signalChangeThresholdAvailable

Availability of the getting the signal Change Threshold

SWIFT

var stateAvailable: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *signalStrengthAvailable;

SWIFT

var signalStrengthAvailable: (NSNumber & SDLBool)? { get set }

True: Available, False: Not Available, Not present: Not Available.

Optional, Boolean

SDLRadioControlData Class Reference

Section Contents

• -initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:• frequencyInteger• frequencyFraction• band• rdsData• availableHDs• hdChannel

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *signalChangeThresholdAvailable;

SWIFT

var signalChangeThresholdAvailable: (NSNumber & SDLBool)? { get set }

• signalStrength• signalChangeThreshold• radioEnable• state

Overview

Include information (both read-only and changeable data) about a remote

control radio module.

-

initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:

Undocumented

OBJECTIVE-C

- (instancetype)initWithFrequencyInteger:(nullable NSNumber<SDLInt> *)frequencyInteger frequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber<SDLInt> *)hdChannel radioEnable:(nullable NSNumber<SDLBool> *)radioEnable;

SWIFT

init(frequencyInteger: (NSNumber & SDLInt)?, frequencyFraction: (NSNumber & SDLInt)?, band: SDLRadioBand?, hdChannel: (NSNumber & SDLInt)?, radioEnable: (NSNumber & SDLBool)?)

frequencyInteger

The integer part of the frequency ie for 101.7 this value should be 101

Integer

frequencyFraction

The fractional part of the frequency for 101.7 is 7

Integer

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *frequencyInteger;

SWIFT

var frequencyInteger: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *frequencyFraction;

band

Radio band value

SDLRadioBand

rdsData

Read only parameter. See RDSData data type for details.

WarningThis property is readonly and cannot be set on the module.

SWIFT

var frequencyFraction: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLRadioBand band;

SWIFT

var band: SDLRadioBand? { get set }

SDLRDSData

availableHDs

number of HD sub-channels if available

WarningThis property is readonly and cannot be set on the module. Integer value Min Value - 1 Max Value -3

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLRDSData *rdsData;

SWIFT

var rdsData: SDLRDSData? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *availableHDs;

hdChannel

Current HD sub-channel if available

Integer value Min Value - 1 Max Value -3

signalStrength

Signal Strength Value

WarningThis property is readonly and cannot be set on the module.

SWIFT

var availableHDs: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *hdChannel;

SWIFT

var hdChannel: (NSNumber & SDLInt)? { get set }

Integer value Min Value - 0 Max Value - 100

signalChangeThreshold

If the signal strength falls below the set value for this parameter, the radio will

tune to an alternative frequency

WarningThis property is readonly and cannot be set on the module. Integer value Min Value - 0 Max Value - 100

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *signalStrength;

SWIFT

var signalStrength: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *signalChangeThreshold;

radioEnable

True if the radio is on, false is the radio is off. When the radio is disabled, no

data other than radioEnable is included in a GetInteriorVehicleData response

Boolean value

state

Read only parameter. See RadioState data type for details.

Warning

SWIFT

var signalChangeThreshold: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *radioEnable;

SWIFT

var radioEnable: (NSNumber & SDLBool)? { get set }

This property is readonly and cannot be set on the module. SDLRadioState

SDLReadDID Class Reference

Section Contents

• -initWithECUName:didLocation:• ecuName• didLocation

Overview

Non periodic vehicle data read request. This is an RPC to get diagnostics data

from certain vehicle modules. DIDs of a certain module might differ from

vehicle type to vehicle type

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLRadioState state;

SWIFT

var state: SDLRadioState? { get set }

Function Group: ProprietaryData

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 2.0

-initWithECUName:didLocation:

Undocumented

ecuName

An ID of the vehicle module

Notes: Minvalue:0; Maxvalue:65535

OBJECTIVE-C

- (instancetype)initWithECUName:(UInt16)ecuNumber didLocation:(NSArray<NSNumber<SDLUInt> *> *)didLocation;

SWIFT

init(ecuName ecuNumber: UInt16, didLocation: [NSNumber & SDLUInt])

didLocation

Raw data from vehicle data DID location(s)

a Vector value representing raw data from vehicle data DID location(s)

Notes:

• Minvalue:0; Maxvalue:65535• ArrayMin:0; ArrayMax:1000

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull ecuName;

SWIFT

var ecuName: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *_Nonnull didLocation;

SDLReadDIDResponse Class Reference

Section Contents

• didResult

Overview

A response to ReadDID

Since SmartDeviceLink 2.0

didResult

Array of requested DID results (with data if available).

SWIFT

var didLocation: [NSNumber & SDLInt] { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLDIDResult *> *didResult;

SDLRectangle Class Reference

Section Contents

• -initWithX:y:width:height:• -initWithCGRect:• x• y• width• height

Overview

A struct describing a rectangle

-initWithX:y:width:height:

Create a Rectangle

SWIFT

var didResult: [SDLDIDResult]? { get set }

x

The top-left x value

y

The top-left y value

width

The width

OBJECTIVE-C

- (instancetype)initWithX:(float)x y:(float)y width:(float)width height:(float)height;

SWIFT

init!(x: Float, y: Float, width: Float, height: Float)

PARAMETERS

height

The height

An new SDLRectangle object

-initWithCGRect:

Create a Rectangle from a CGRect

RETURN VALUE

OBJECTIVE-C

- (instancetype)initWithCGRect:(CGRect)rect;

SWIFT

init!(cgRect rect: CGRect)

rect

The rectangle to use

An new SDLRectangle object

x

The X-coordinate of the user control

Required, Float

PARAMETERS

RETURN VALUE

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *x;

SWIFT

var x: (NSNumber & SDLFloat)! { get set }

y

The Y-coordinate of the user control

Required, Float

width

The width of the user control’s bounding rectangle

Required, Float

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *y;

SWIFT

var y: (NSNumber & SDLFloat)! { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *width;

height

The height of the user control’s bounding rectangle

Required, Float

SWIFT

var width: (NSNumber & SDLFloat)! { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *height;

SWIFT

var height: (NSNumber & SDLFloat)! { get set }

SDLRegisterAppInterface ClassReference

Section Contents

• -initWithLifecycleConfiguration:• -initWithAppName:appId:languageDesired:• -

initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:• -

initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDi• syncMsgVersion• appName• ttsName• ngnMediaScreenAppName• vrSynonyms• isMediaApplication• languageDesired• hmiDisplayLanguageDesired• appHMIType• hashID• deviceInfo• appID• appInfo

Overview

Registers the application’s interface with SDL®, declaring properties of the

registration, including the messaging interface version, the app name, etc. The

mobile application must establish its interface registration with SDL before any

other interaction with SDL® can take place. The registration lasts until it is

terminated either by the application calling the SDLUnregisterAppInterface

method, or by SDL® sending an SDLOnAppInterfaceUnregistered notification,

or by loss of the underlying transport connection, or closing of the underlying

message transmission protocol RPC session

Until the application receives its first SDLOnHMIStatus Notification, its HMI

Status is assumed to be: SDLHMILevel=NONE, SDLAudioStreamingState

=NOT_AUDIBLE, SDLSystemContext=MAIN

All SDL® resources which the application creates or uses (e.g. Choice Sets,

Command Menu, etc.) are associated with the application’s interface

registration. Therefore, when the interface registration ends, the SDL®

resources associated with the application are disposed of. As a result, even

though the application itself may continue to run on its host platform (e.g.

mobile device) after the interface registration terminates, the application will

not be able to use the SDL® HMI without first establishing a new interface

registration and re-creating its required SDL® resources. That is, SDL®

resources created by (or on behalf of) an application do not persist beyond the

life-span of the interface registration

Resources and settings whose lifespan is tied to the duration of an application’s

interface registration:

• Choice Sets• Command Menus (built by successive calls to SDLAddCommand )• Media clock timer display value• Media clock timer display value• Media clock timer display value

The autoActivateID is used to grant an application the HMILevel and

AudioStreamingState it had when it last disconnected

Notes: The autoActivateID parameter, and associated behavior, is currently

ignored by SDL®

When first calling this method (i.e. first time within life cycle of mobile app), an

autoActivateID should not be included. After successfully registering an

interface, an autoActivateID is returned to the mobile application for it to use in

subsequent connections. If the connection between SDL® and the mobile

application is lost, such as the vehicle is turned off while the application is

running, the autoActivateID can then be passed in another call to

RegisterAppInterface to re-acquire SDLHMILevel=FULL

If the application intends to stream audio it is important to indicate so via the

isMediaApp parameter. When set to true, audio will reliably stream without any

configuration required by the user. When not set, audio may stream, depending

on what the user might have manually configured as a media source on SDL®

There is no time limit for how long the autoActivateID is “valid” (i.e. would

confer focus and opt-in)

HMILevel is not defined before registering

@since SDL 1.0

SeeSDLUnregisterAppInterface SDLOnAppInterfaceUnregistered

-initWithLifecycleConfiguration:

Undocumented

OBJECTIVE-C

- (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration;

SWIFT

init(lifecycleConfiguration: SDLLifecycleConfiguration)

-initWithAppName:appId:languageDesired:

Undocumented

-

initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName

Undocumented

OBJECTIVE-C

- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired;

SWIFT

init(appName: String, appId: String, languageDesired: SDLLanguage)

OBJECTIVE-C

- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName;

-

initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName

Undocumented

SWIFT

init(appName: String, appId: String, languageDesired: SDLLanguage, isMediaApp: Bool, appTypes: [SDLAppHMIType], shortAppName: String?)

OBJECTIVE-C

- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash;

syncMsgVersion

The version of the SDL interface

Required

SWIFT

init(appName: String, appId: String, languageDesired: SDLLanguage, isMediaApp: Bool, appTypes: [SDLAppHMIType], shortAppName: String?, ttsName: [SDLTTSChunk]?, vrSynonyms: [String]?, hmiDisplayLanguageDesired: SDLLanguage, resumeHash: String?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSyncMsgVersion *_Nonnull syncMsgVersion;

SWIFT

var syncMsgVersion: SDLSyncMsgVersion { get set }

appName

The Mobile Application’s Name, This name is displayed in the SDL Mobile

Applications menu. It also serves as the unique identifier of the application for

SmartDeviceLink

@discussion • Needs to be unique over all applications.• May not be empty.• May not start with a new line character.• May not interfere with any name or synonym of previously registered

applications and any predefined blacklist of words (global commands).• Needs to be unique over all applications. Applications with the same name will

be rejected.

Required, Max length 100 chars

ttsName

TTS string for VR recognition of the mobile application name.

@discussion Meant to overcome any failing on speech engine in properly

pronouncing / understanding app name.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull appName;

SWIFT

var appName: String { get set }

• Needs to be unique over all applications.• May not be empty.• May not start with a new line character.

Optional, Array of SDLTTSChunk, Array size 1 - 100

@since SDL 2.0

SeeSDLTTSChunk

ngnMediaScreenAppName

A String representing an abbreviated version of the mobile application’s name

(if necessary) that will be displayed on the media screen

@discussion If not provided, the appName is used instead (and will be

truncated if too long)

Optional, Max length 100 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsName;

SWIFT

var ttsName: [SDLTTSChunk]? { get set }

vrSynonyms

Defines a additional voice recognition commands

@discussion May not interfere with any app name of previously registered

applications and any predefined blacklist of words (global commands)

Optional, Array of Strings, Array length 1 - 100, Max String length 40

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *ngnMediaScreenAppName;

SWIFT

var ngnMediaScreenAppName: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *vrSynonyms;

isMediaApplication

Indicates if the application is a media or a non-media application.

@discussion Only media applications will be able to stream audio to head units

that is audible outside of the BT media source.

Required, Boolean

SWIFT

var vrSynonyms: [String]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull isMediaApplication;

SWIFT

var isMediaApplication: NSNumber & SDLBool { get set }

languageDesired

A Language enumeration indicating what language the application intends to

use for user interaction (TTS and VR).

@discussion If there is a mismatch with the head unit, the app will be able to

change this registration with changeRegistration prior to app being brought into

focus.

Required

hmiDisplayLanguageDesired

An enumeration indicating what language the application intends to use for

user interaction (Display).

@discussion If there is a mismatch with the head unit, the app will be able to

change this registration with changeRegistration prior to app being brought into

focus.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull languageDesired;

SWIFT

var languageDesired: SDLLanguage { get set }

Required

@since SDL 2.0

appHMIType

A list of all applicable app types stating which classifications to be given to the

app.

Optional, Array of SDLAppHMIType, Array size 1 - 100

@since SDL 2.0

See

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLLanguage _Nonnull hmiDisplayLanguageDesired;

SWIFT

var hmiDisplayLanguageDesired: SDLLanguage { get set }

SDLAppHMIType

hashID

ID used to uniquely identify current state of all app data that can persist

through connection cycles (e.g. ignition cycles).

@discussion This registered data (commands, submenus, choice sets, etc.) can

be reestablished without needing to explicitly reregister each piece. If omitted,

then the previous state of an app’s commands, etc. will not be restored.

When sending hashID, all RegisterAppInterface parameters should still be

provided (e.g. ttsName, etc.).

Optional, max length 100 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLAppHMIType> *appHMIType;

SWIFT

var appHMIType: [SDLAppHMIType]? { get set }

deviceInfo

Information about the connecting device

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *hashID;

SWIFT

var hashID: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDeviceInfo *deviceInfo;

appID

ID used to validate app with policy table entries

Required, max length 100

@since SDL 2.0

appInfo

Information about the application running

SWIFT

var deviceInfo: SDLDeviceInfo? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull appID;

SWIFT

var appID: String { get set }

Optional

SDLRegisterAppInterfaceResponseClass Reference

Section Contents

• syncMsgVersion• language• hmiDisplayLanguage• displayCapabilities• buttonCapabilities• softButtonCapabilities• presetBankCapabilities• hmiZoneCapabilities

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAppInfo *appInfo;

SWIFT

var appInfo: SDLAppInfo? { get set }

• speechCapabilities• prerecordedSpeech• vrCapabilities• audioPassThruCapabilities• pcmStreamCapabilities• vehicleType• supportedDiagModes• hmiCapabilities• sdlVersion• systemSoftwareVersion

Overview

Response to SDLRegisterAppInterface

Since SmartDeviceLink 1.0

syncMsgVersion

The RPC spec version supported by the connected IVI system.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLSyncMsgVersion *syncMsgVersion;

SWIFT

var syncMsgVersion: SDLSyncMsgVersion? { get set }

language

The currently active VR+TTS language on the module. See “Language” for

options.

Optional

hmiDisplayLanguage

The currently active display language on the module. See “Language” for

options.

Since SmartDeviceLink 2.0

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLLanguage language;

SWIFT

var language: SDLLanguage? { get set }

displayCapabilities

Contains information about the display for the SDL system to which the

application is currently connected.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLLanguage hmiDisplayLanguage;

SWIFT

var hmiDisplayLanguage: SDLLanguage? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities;

buttonCapabilities

Provides information about the capabilities of a SDL HMI button.

Optional, Array of length 1 - 100, of SDLButtonCapabilities

softButtonCapabilities

Contains information about a SoftButton’s capabilities.

Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities

SWIFT

var displayCapabilities: SDLDisplayCapabilities? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLButtonCapabilities *> *buttonCapabilities;

SWIFT

var buttonCapabilities: [SDLButtonCapabilities]? { get set }

presetBankCapabilities

If returned, the platform supports custom on-screen Presets

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;

SWIFT

var softButtonCapabilities: [SDLSoftButtonCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLPresetBankCapabilities *presetBankCapabilities;

hmiZoneCapabilities

Specifies HMI Zones in the vehicle.

Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities

speechCapabilities

Contains information about TTS capabilities on the SDL platform.

Optional, Array of length 1 - 100, of SDLSpeechCapabilities

SWIFT

var presetBankCapabilities: SDLPresetBankCapabilities? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;

SWIFT

var hmiZoneCapabilities: [SDLHMIZoneCapabilities]? { get set }

prerecordedSpeech

Contains information about the speech capabilities on the SDL platform *

• Optional, Array of length 1 - 100, of SDLPrerecordedSpeech

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSpeechCapabilities> *speechCapabilities;

SWIFT

var speechCapabilities: [SDLSpeechCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLPrerecordedSpeech> *prerecordedSpeech;

vrCapabilities

The VR capabilities of the connected SDL platform.

Optional, Array of length 1 - 100, of SDLVRCapabilities

audioPassThruCapabilities

Describes different audio type configurations for SDLPerformAudioPassThru,

e.g. {8kHz,8-bit,PCM}

SWIFT

var prerecordedSpeech: [SDLPrerecordedSpeech]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLVRCapabilities> *vrCapabilities;

SWIFT

var vrCapabilities: [SDLVRCapabilities]? { get set }

Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities

pcmStreamCapabilities

Describes different audio type configurations for the audio PCM stream service,

e.g. {8kHz,8-bit,PCM}

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;

SWIFT

var audioPassThruCapabilities: [SDLAudioPassThruCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLAudioPassThruCapabilities *pcmStreamCapabilities;

vehicleType

Specifies the connected vehicle’s type

supportedDiagModes

Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for

DiagnosticMessage requests. If a mode outside this list is requested, it will be

rejected.

Optional, Array of length 1 - 100, Integer 0 - 255

SWIFT

var pcmStreamCapabilities: SDLAudioPassThruCapabilities? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleType *vehicleType;

SWIFT

var vehicleType: SDLVehicleType? { get set }

hmiCapabilities

Specifies the availability of various SDL features.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSNumber<SDLInt> *> *supportedDiagModes;

SWIFT

var supportedDiagModes: [NSNumber & SDLInt]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLHMICapabilities *hmiCapabilities;

sdlVersion

The SmartDeviceLink Core version

Optional, String max length 100

systemSoftwareVersion

The software version of the system that implements SmartDeviceLink Core

Optional, String max length 100

SWIFT

var hmiCapabilities: SDLHMICapabilities? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *sdlVersion;

SWIFT

var sdlVersion: String? { get set }

SDLRemoteControlCapabilities ClassReference

Section Contents

• -

initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:• climateControlCapabilities• radioControlCapabilities• buttonCapabilities

Overview

Capabilities of the remote control feature

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *systemSoftwareVersion;

SWIFT

var systemSoftwareVersion: String? { get set }

-

initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:

Undocumented

climateControlCapabilities

If included, the platform supports RC climate controls. For this baseline version,

maxsize=1. i.e. only one climate control module is supported.

Optional, Array of SDLClimateControlCapabilities, Array length 1 - 100

OBJECTIVE-C

- (instancetype)initWithClimateControlCapabilities:(nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities radioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities;

SWIFT

init(climateControlCapabilities: [SDLClimateControlCapabilities]?, radioControlCapabilities: [SDLRadioControlCapabilities]?, buttonCapabilities: [SDLButtonCapabilities]?)

radioControlCapabilities

If included, the platform supports RC radio controls. For this baseline version,

maxsize=1. i.e. only one radio control module is supported.

Optional, Array of SDLRadioControlCapabilities, Array length 1 - 100

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLClimateControlCapabilities *> *climateControlCapabilities;

SWIFT

var climateControlCapabilities: [SDLClimateControlCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLRadioControlCapabilities *> *radioControlCapabilities;

buttonCapabilities

If included, the platform supports RC button controls with the included button

names.

Optional, Array of SDLButtonCapabilities, Array length 1 - 100

SWIFT

var radioControlCapabilities: [SDLRadioControlCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLButtonCapabilities *> *buttonCapabilities;

SWIFT

var buttonCapabilities: [SDLButtonCapabilities]? { get set }

SDLResetGlobalProperties ClassReference

Section Contents

• -initWithProperties:• properties

Overview

Resets the passed global properties to their default values as defined by SDL

The HELPPROMPT global property default value is generated by SDL consists of

the first vrCommand of each Command Menu item defined at the moment PTT

is pressed

The TIMEOUTPROMPT global property default value is the same as the

HELPPROMPT global property default value

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 1.0 See SetGlobalProperties

-initWithProperties:

Undocumented

OBJECTIVE-C

- (instancetype)initWithProperties:(NSArray<SDLGlobalProperty> *)properties;

properties

An array of one or more GlobalProperty enumeration elements indicating which

global properties to reset to their default value

SWIFT

init(properties: [SDLGlobalProperty])

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLGlobalProperty> *_Nonnull properties;

SWIFT

var properties: [SDLGlobalProperty] { get set }

SDLScreenManager Class Reference

Section Contents

• textField1• textField2• textField3• textField4• mediaTrackTextField• primaryGraphic• secondaryGraphic• textAlignment• textField1Type• textField2Type• textField3Type• textField4Type• softButtonObjects• menu• voiceCommands• -initWithConnectionManager:fileManager:• -stop• -beginUpdates• -endUpdatesWithCompletionHandler:• -softButtonObjectNamed:

Overview

Undocumented

textField1

The top text field within a template layout

textField2

The second text field within a template layout

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *textField1;

SWIFT

var textField1: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *textField2;

SWIFT

var textField2: String? { get set }

textField3

The third text field within a template layout

textField4

The fourth text field within a template layout

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *textField3;

SWIFT

var textField3: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *textField4;

mediaTrackTextField

The media text field available within the media layout. Often less emphasized

than textField(1-4)

primaryGraphic

The primary graphic within a template layout

SWIFT

var textField4: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *mediaTrackTextField;

SWIFT

var mediaTrackTextField: String? { get set }

secondaryGraphic

A secondary graphic used in some template layouts

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLArtwork *primaryGraphic;

SWIFT

var primaryGraphic: SDLArtwork? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLArtwork *secondaryGraphic;

SWIFT

var secondaryGraphic: SDLArtwork? { get set }

textAlignment

What alignment textField(1-4) should use

textField1Type

The type of data textField1 describes

OBJECTIVE-C

@property (readwrite, copy, nonatomic) SDLTextAlignment _Nonnull textAlignment;

SWIFT

var textAlignment: SDLTextAlignment { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLMetadataType textField1Type;

textField2Type

The type of data textField2 describes

textField3Type

The type of data textField3 describes

SWIFT

var textField1Type: SDLMetadataType? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLMetadataType textField2Type;

SWIFT

var textField2Type: SDLMetadataType? { get set }

textField4Type

The type of data textField4 describes

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLMetadataType textField3Type;

SWIFT

var textField3Type: SDLMetadataType? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLMetadataType textField4Type;

SWIFT

var textField4Type: SDLMetadataType? { get set }

softButtonObjects

The current list of soft buttons within a template layout. Set this array to

change the displayed soft buttons.

menu

The current list of menu cells displayed in the app’s menu.

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSArray<SDLSoftButtonObject *> *_Nonnull softButtonObjects;

SWIFT

var softButtonObjects: [SDLSoftButtonObject] { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSArray<SDLMenuCell *> *_Nonnull menu;

voiceCommands

The current list of voice commands available for the user to speak and be

recognized by the IVI’s voice recognition engine.

-initWithConnectionManager:fileManager:

Initialize a screen manager

Warning

For internal use

SWIFT

var menu: [SDLMenuCell] { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSArray<SDLVoiceCommand *> *_Nonnull voiceCommands;

SWIFT

var voiceCommands: [SDLVoiceCommand] { get set }

connectionManager

The connection manager used to send RPCs

fileManager

The file manager used to upload files

The screen manager

-stop

Stops the manager.

WarningFor internal use

OBJECTIVE-C

- (nonnull instancetype)initWithConnectionManager: (nonnull id<SDLConnectionManagerType>)connectionManager fileManager:(nonnull SDLFileManager *)fileManager;

PARAMETERS

RETURN VALUE

-beginUpdates

Delays all screen updates until endUpdatesWithCompletionHandler: is called.

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

OBJECTIVE-C

- (void)beginUpdates;

SWIFT

func beginUpdates()

-endUpdatesWithCompletionHandler:

Update text fields with new text set into the text field properties. Pass an empty

string \@"" to clear the text field.

If the system does not support a full 4 fields, this will automatically be

concatenated and properly send the field available.

If 3 lines are available: [field1, field2, field3 - field 4]

If 2 lines are available: [field1 - field2, field3 - field4]

If 1 line is available: [field1 - field2 - field3 - field4]

Also updates the primary and secondary images with new image(s) if new one

(s) been set. This method will take care of naming the files (based on a hash).

This is assumed to be a non-persistant image.

If it needs to be uploaded, it will be. Once the upload is complete, the on-screen

graphic will be updated.

OBJECTIVE-C

- (void)endUpdatesWithCompletionHandler: (nullable SDLScreenManagerUpdateCompletionHandler)handler;

SWIFT

func endUpdates(completionHandler handler: SDLScreenManagerUpdateCompletionHandler? = nil)

handler

A handler run when the fields have finished updating, with an error if

the update failed. This handler may be called multiple times when the

text update is sent and the image update is sent.

-softButtonObjectNamed:

Find a current soft button object with a specific name

PARAMETERS

OBJECTIVE-C

- (nullable SDLSoftButtonObject *)softButtonObjectNamed: (nonnull NSString *)name;

SWIFT

func softButtonObjectNamed(_ name: String) -> SDLSoftButtonObject?

name

The name of the soft button object to find

The soft button object or nil if there isn’t one with that name

SDLScreenParams Class Reference

Section Contents

• resolution• touchEventAvailable

Overview

A struct in DisplayCapabilities describing parameters related to a video / touch

input area

resolution

The resolution of the prescribed screen area

Required

PARAMETERS

RETURN VALUE

touchEventAvailable

Types of screen touch events available in screen area

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLImageResolution *_Nonnull resolution;

SWIFT

var resolution: SDLImageResolution { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTouchEventCapabilities *touchEventAvailable;

SDLScrollableMessage Class Reference

Section Contents

• -initWithMessage:• -initWithMessage:timeout:softButtons:• scrollableMessageBody• timeout• softButtons

Overview

Creates a full screen overlay containing a large block of formatted text that can

be scrolled with up to 8 SoftButtons defined

Function Group: ScrollableMessage

HMILevel needs to be FULL

-initWithMessage:

Undocumented

SWIFT

var touchEventAvailable: SDLTouchEventCapabilities? { get set }

-initWithMessage:timeout:softButtons:

Undocumented

OBJECTIVE-C

- (instancetype)initWithMessage:(NSString *)message;

SWIFT

init(message: String)

OBJECTIVE-C

- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

SWIFT

init(message: String, timeout: UInt16, softButtons: [SDLSoftButton]?)

scrollableMessageBody

A Body of text that can include newlines and tabs @discussion A String value

representing the Body of text that can include newlines and tabs

Notes: Maxlength=500

timeout

Gets/Sets an App defined timeout. Indicates how long of a timeout in

milliseconds from the last action @discussion An Integer value representing an

App defined timeout in milliseconds

Notes:Minval=0; Maxval=65535;Default=30000

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull scrollableMessageBody;

SWIFT

var scrollableMessageBody: String { get set }

softButtons

Gets/Sets App defined SoftButtons.If omitted on supported displays, only the

system defined “Close” SoftButton will be displayed @discussion A Vector value

representing App defined SoftButtons

Notes: Minsize=0, Maxsize=8

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SDLSendHapticData Class Reference

Section Contents

• -initWithHapticRectData:• hapticRectData

Overview

Sends the spatial data gathered from SDLCarWindow or VirtualDisplayEncoder

to the HMI. This data will be utilized by the HMI to determine how and when

haptic events should occur.

-initWithHapticRectData:

Constructs a new SDLSendHapticData object indicated by the hapticSpatialData

parameter

SWIFT

var softButtons: [SDLSoftButton]? { get set }

hapticRectData

Array of spatial data structures

hapticRectData

Array of spatial data structures that represent the locations of all user controls

present on the HMI. This data should be updated if/when the application

presents a new screen. When a request is sent, if successful, it will replace all

spatial data previously sent through RPC. If an empty array is sent, the existing

spatial data will be cleared

Optional, Array of SDLHapticRect, Array size 0 - 1,000

OBJECTIVE-C

- (nonnull instancetype)initWithHapticRectData: (nonnull NSArray<SDLHapticRect *> *)hapticRectData;

SWIFT

init(hapticRectData: [SDLHapticRect])

PARAMETERS

SDLSendLocation Class Reference

Section Contents

• -

initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:• -

initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliv• longitudeDegrees• latitudeDegrees• locationName• locationDescription• addressLines• phoneNumber• locationImage

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLHapticRect *> *hapticRectData;

SWIFT

var hapticRectData: [SDLHapticRect]? { get set }

• deliveryMode• timeStamp• address

Overview

Undocumented

-

initWithLongitude:latitude:locationName:locationDescription:address:phoneNum

Undocumented

OBJECTIVE-C

- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray<NSString *> *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image;

SWIFT

init(longitude: Double, latitude: Double, locationName: String?, locationDescription: String?, address: [String]?, phoneNumber: String?, image: SDLImage?)

-

initWithLongitude:latitude:locationName:locationDescription:displayAddressLin

Undocumented

longitudeDegrees

The longitudinal coordinate of the location.

Float, Required, -180.0 - 180.0

OBJECTIVE-C

- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray<NSString *> *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address;

SWIFT

init(longitude: Double, latitude: Double, locationName: String?, locationDescription: String?, displayAddressLines: [String]?, phoneNumber: String?, image: SDLImage?, deliveryMode: SDLDeliveryMode?, timeStamp: SDLDateTime?, address: SDLOasisAddress?)

latitudeDegrees

The latitudinal coordinate of the location.

Float, Required, -90.0 - 90.0

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber<SDLFloat> *longitudeDegrees;

SWIFT

@NSCopying var longitudeDegrees: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSNumber<SDLFloat> *latitudeDegrees;

locationName

Name / title of intended location

Optional, Maxlength = 500 char

locationDescription

Description of the intended location / establishment

Optional, MaxLength = 500 char

SWIFT

@NSCopying var latitudeDegrees: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *locationName;

SWIFT

var locationName: String? { get set }

addressLines

Location address for display purposes only

Contains String, Optional, Max Array Length = 4, Max String Length = 500

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *locationDescription;

SWIFT

var locationDescription: String? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *addressLines;

phoneNumber

Phone number of intended location / establishment

Optional, Max Length = 500

locationImage

Image / icon of intended location

Optional

SWIFT

var addressLines: [String]? { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSString *phoneNumber;

SWIFT

var phoneNumber: String? { get set }

deliveryMode

Mode in which the sendLocation request is sent

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *locationImage;

SWIFT

var locationImage: SDLImage? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDeliveryMode deliveryMode;

timeStamp

Arrival time of Location. If multiple SendLocations are sent, this will be used for

sorting as well.

Optional

address

Address to be used for setting destination

SWIFT

var deliveryMode: SDLDeliveryMode? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDateTime *timeStamp;

SWIFT

var timeStamp: SDLDateTime? { get set }

Optional

SDLSetAppIcon Class Reference

Section Contents

• -initWithFileName:• syncFileName

Overview

Used to set existing local file on SDL as the app’s icon. Not supported on first

generation SDL modules.

Since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLOasisAddress *address;

SWIFT

var address: SDLOasisAddress? { get set }

-initWithFileName:

Undocumented

syncFileName

A file reference name @discussion A String value representing a file reference

name

Notes: Maxlength=500

OBJECTIVE-C

- (instancetype)initWithFileName:(NSString *)fileName;

SWIFT

init(fileName: String)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

SDLSetDisplayLayout Class Reference

Section Contents

• -initWithPredefinedLayout:• -initWithLayout:• displayLayout

Overview

Used to set an alternate display layout. If not sent, default screen for given

platform will be shown

Since SmartDeviceLink 2.0

-initWithPredefinedLayout:

Undocumented

SWIFT

var syncFileName: String { get set }

-initWithLayout:

Undocumented

OBJECTIVE-C

- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout;

SWIFT

init(predefinedLayout: SDLPredefinedLayout)

OBJECTIVE-C

- (instancetype)initWithLayout:(NSString *)displayLayout;

SWIFT

init(layout displayLayout: String)

displayLayout

A display layout. Predefined or dynamically created screen layout. Currently

only predefined screen layouts are defined. Predefined layouts include: “

ONSCREEN_PRESETS” Custom screen containing app-defined onscreen presets.

Currently defined for GEN2

SDLSetDisplayLayoutResponse ClassReference

Section Contents

• displayCapabilities• buttonCapabilities

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull displayLayout;

SWIFT

var displayLayout: String { get set }

• softButtonCapabilities• presetBankCapabilities

Overview

Response to SDLSetDisplayLayout

Since SmartDeviceLink 2.0

displayCapabilities

The display capabilities of the new template layout

buttonCapabilities

The button capabilities of the new template layout

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities;

SWIFT

var displayCapabilities: SDLDisplayCapabilities? { get set }

softButtonCapabilities

The soft button capabilities of the new template layout

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLButtonCapabilities *> *buttonCapabilities;

SWIFT

var buttonCapabilities: [SDLButtonCapabilities]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;

SWIFT

var softButtonCapabilities: [SDLSoftButtonCapabilities]? { get set }

presetBankCapabilities

The preset bank capabilities of the new template layout

SDLSetGlobalProperties ClassReference

Section Contents

• -initWithHelpText:timeoutText:• -initWithHelpText:timeoutText:vrHelpTitle:vrHelp:• -

initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:• helpPrompt

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLPresetBankCapabilities *presetBankCapabilities;

SWIFT

var presetBankCapabilities: SDLPresetBankCapabilities? { get set }

• timeoutPrompt• vrHelpTitle• vrHelp• menuTitle• menuIcon• keyboardProperties

Overview

Sets global property values

Since SmartDeviceLink 1.0

See SDLResetGlobalProperties

-initWithHelpText:timeoutText:

Initialize SetGlobalProperties with help text and timeout text

OBJECTIVE-C

- (nonnull instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText;

SWIFT

init(helpText: String?, timeoutText: String?)

helpText

A string that will be turned into TTS chunks for the help prompt

timeoutText

A string that will be turned into TTS chunks for the timeout prompt

The SetGlobalProperties RPC

-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:

Initialize SetGlobalProperties with help text, timeout text, help title, and help

items

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray<SDLVRHelpItem *> *) vrHelp;

helpText

A string that will be turned into TTS chunks for the help prompt

timeoutText

A string that will be turned into TTS chunks for the timeout prompt

vrHelpTitle

The title of the help interface prompt

vrHelp

The items of the help interface prompt

SWIFT

init(helpText: String?, timeoutText: String?, vrHelpTitle: String?, vrHelp: [SDLVRHelpItem]?)

PARAMETERS

The SetGlobalProperties RPC

-

initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboard

Initialize SetGlobalProperties with all possible items

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype) initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIconkeyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties;

SWIFT

init(helpText: String?, timeoutText: String?, vrHelpTitle: String?, vrHelp: [SDLVRHelpItem]?, menuTitle: String?, menuIcon: SDLImage?, keyboardProperties: SDLKeyboardProperties?)

helpText

A string that will be turned into TTS chunks for the help prompt

timeoutText

A string that will be turned into TTS chunks for the timeout prompt

vrHelpTitle

The title of the help interface prompt

vrHelp

The items of the help interface prompt

menuTitle

The title of the menu button

menuIcon

The icon on the menu button

keyboardProperties

The properties of a keyboard prompt

PARAMETERS

The SetGlobalProperties RPC

helpPrompt

Help prompt for when the user asks for help with an interface prompt

Optional

timeoutPrompt

Help prompt for when an interface prompt times out

Optional, Array, at least 1 item

RETURN VALUE

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *helpPrompt;

SWIFT

var helpPrompt: [SDLTTSChunk]? { get set }

vrHelpTitle

Sets a voice recognition Help Title

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTTSChunk *> *timeoutPrompt;

SWIFT

var timeoutPrompt: [SDLTTSChunk]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *vrHelpTitle;

vrHelp

Sets the items listed in the VR help screen used in an interaction started by

Push to Talk

@since SmartDeviceLink 2.0

Optional

SWIFT

var vrHelpTitle: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLVRHelpItem *> *vrHelp;

SWIFT

var vrHelp: [SDLVRHelpItem]? { get set }

menuTitle

Text for the menu button label

Optional

menuIcon

Icon for the menu button

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *menuTitle;

SWIFT

var menuTitle: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *menuIcon;

keyboardProperties

On-screen keyboard (perform interaction) configuration

Optional

SWIFT

var menuIcon: SDLImage? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties;

SWIFT

var keyboardProperties: SDLKeyboardProperties? { get set }

SDLSetInteriorVehicleData ClassReference

Section Contents

• -initWithModuleData:• moduleData

Overview

This RPC allows a remote control type mobile application to change the settings

of a specific remote control module.

-initWithModuleData:

Undocumented

OBJECTIVE-C

- (instancetype)initWithModuleData:(SDLModuleData *)moduleData;

SWIFT

init(moduleData: SDLModuleData)

moduleData

The module data to set for the requested RC module.

SDLSetInteriorVehicleDataResponseClass Reference

Section Contents

• moduleData

Overview

Response to SDLSetInteriorVehicleData

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;

SWIFT

var moduleData: SDLModuleData { get set }

moduleData

The new module data for the requested module

SDLSetMediaClockTimer ClassReference

Section Contents

• -initWithUpdateMode:hours:minutes:seconds:• -initWithUpdateMode:• startTime• endTime• updateMode

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;

SWIFT

var moduleData: SDLModuleData { get set }

Overview

Sets the media clock/timer value and the update method (e.g.count-up, count-

down, etc.)

Function Group: Base

HMILevel needs to be FULL, LIMITIED or BACKGROUND

Since SmartDeviceLink 1.0

-initWithUpdateMode:hours:minutes:seconds:

Undocumented

-initWithUpdateMode:

Undocumented

OBJECTIVE-C

- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds;

SWIFT

init(updateMode: SDLUpdateMode, hours: UInt8, minutes: UInt8, seconds: UInt8)

startTime

A Start Time with specifying hour, minute, second values

@discussion A startTime object with specifying hour, minute, second values

Notes:

• If “updateMode” is COUNTUP or COUNTDOWN, this parameter must be

provided• Will be ignored for PAUSE/RESUME and CLEAR

OBJECTIVE-C

- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode;

SWIFT

init(updateMode: SDLUpdateMode)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLStartTime *startTime;

endTime

An END time of type SDLStartTime, specifying hour, minute, second values

@discussion An SDLStartTime object with specifying hour, minute, second

values

updateMode

The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)

SWIFT

var startTime: SDLStartTime? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLStartTime *endTime;

SWIFT

var endTime: SDLStartTime? { get set }

@discussion a Enumeration value (COUNTUP/COUNTDOWN/PAUSE/RESUME)

Notes:

• When updateMode is PAUSE, RESUME or CLEAR, the start time value is

ignored• When updateMode is RESUME, the timer resumes counting from the

timer’s value when it was paused

SDLShow Class Reference

Section Contents

• -initWithMainField1:mainField2:alignment:• -initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:• -initWithMainField1:mainField2:mainField3:mainField4:alignment:

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLUpdateMode _Nonnull updateMode;

SWIFT

var updateMode: SDLUpdateMode { get set }

• -

initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainF• -

initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:• -

initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:s• mainField1• mainField2• mainField3• mainField4• alignment• statusBar• mediaClock• mediaTrack• graphic• secondaryGraphic• softButtons• customPresets• metadataTags

Overview

Updates the application’s display text area, regardless of whether or not this

text area is visible to the user at the time of the request. The application’s

display text area remains unchanged until updated by subsequent calls to Show

The content of the application’s display text area is visible to the user when the

application is FULL or LIMITED, and the SDLSystemContext=MAIN and no

SDLAlert is in progress

The Show operation cannot be used to create an animated scrolling screen. To

avoid distracting the driver, Show commands cannot be issued more than once

every 4 seconds. Requests made more frequently than this will be rejected

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 1.0 See SDLAlert SDLSetMediaClockTimer

-initWithMainField1:mainField2:alignment:

Undocumented

-

initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:

Undocumented

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment;

SWIFT

init(mainField1: String?, mainField2: String?, alignment: SDLTextAlignment?)

-

initWithMainField1:mainField2:mainField3:mainField4:alignment:

Undocumented

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment;

SWIFT

init(mainField1: String?, mainField1Type: SDLMetadataType?, mainField2: String?, mainField2Type: SDLMetadataType?, alignment: SDLTextAlignment?)

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment;

-

initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:main

Undocumented

SWIFT

init(mainField1: String?, mainField2: String?, mainField3: String?, mainField4: String?, alignment: SDLTextAlignment?)

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment;

-

initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:

Undocumented

SWIFT

init(mainField1: String?, mainField1Type: SDLMetadataType?, mainField2: String?, mainField2Type: SDLMetadataType?, mainField3: String?, mainField3Type: SDLMetadataType?, mainField4: String?, mainField4Type: SDLMetadataType?, alignment: SDLTextAlignment?)

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack;

SWIFT

init(mainField1: String?, mainField2: String?, alignment: SDLTextAlignment?, statusBar: String?, mediaClock: String?, mediaTrack: String?)

-

initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:med

Undocumented

OBJECTIVE-C

- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons customPresets:(nullable NSArray<NSString *> *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata;

SWIFT

init(mainField1: String?, mainField2: String?, mainField3: String?, mainField4: String?, alignment: SDLTextAlignment?, statusBar: String?, mediaClock: String?, mediaTrack: String?, graphic: SDLImage?, softButtons: [SDLSoftButton]?, customPresets: [String]?, textFieldMetadata metadata: SDLMetadataTags?)

mainField1

The text displayed in a single-line display, or in the upper display line in a two-

line display @discussion The String value representing the text displayed in a

single-line display, or in the upper display line in a two-line display

Notes:

• If this parameter is omitted, the text of mainField1 does not change• If this parameter is an empty string, the field will be cleared

mainField2

The text displayed on the second display line of a two-line display

@discussion The String value representing the text displayed on the second

display line of a two-line display

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mainField1;

SWIFT

var mainField1: String? { get set }

Notes:

• If this parameter is omitted, the text of mainField2 does not change• If this parameter is an empty string, the field will be cleared• If provided and the display is a single-line display, the parameter is

ignored• Maxlength = 500

mainField3

The text displayed on the first display line of the second page

@discussion The String value representing the text displayed on the first

display line of the second page

Notes:

• If this parameter is omitted, the text of mainField3 does not change• If this parameter is an empty string, the field will be cleared• If provided and the display is a single-line display, the parameter is

ignored

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mainField2;

SWIFT

var mainField2: String? { get set }

• Maxlength = 500

@since SmartDeviceLink 2.0

mainField4

The text displayed on the second display line of the second page

@discussion The String value representing the text displayed on the second

display line of the second page

Notes:

• If this parameter is omitted, the text of mainField4 does not change• If this parameter is an empty string, the field will be cleared• If provided and the display is a single-line display, the parameter is

ignored• Maxlength = 500

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mainField3;

SWIFT

var mainField3: String? { get set }

alignment

The alignment that Specifies how mainField1 and mainField2 text should be

aligned on display

@discussion An Enumeration value

Notes:

• Applies only to mainField1 and mainField2 provided on this call, not to

what is already showing in display• If this parameter is omitted, text in both mainField1 and mainField2 will be

centered• Has no effect with navigation display

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mainField4;

SWIFT

var mainField4: String? { get set }

statusBar

Text in the Status Bar

@discussion A String representing the text you want to add in the Status Bar

Notes: The status bar only exists on navigation displays

• If this parameter is omitted, the status bar text will remain unchanged• If this parameter is an empty string, the field will be cleared• If provided and the display has no status bar, this parameter is ignored

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLTextAlignment alignment;

SWIFT

var alignment: SDLTextAlignment? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *statusBar;

mediaClock

This property is deprecated use SetMediaClockTimer instead.

The value for the MediaClock field using a format described in the

MediaClockFormat enumeration

@discussion A String value for the MediaClock

Notes:

• Must be properly formatted as described in the MediaClockFormat

enumeration• If a value of five spaces is provided, this will clear that field on the display

(i.e. the media clock timer field will not display anything)

SWIFT

var statusBar: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mediaClock;

mediaTrack

The text in the track field

@discussion A String value disaplayed in the track field

Notes:

• If parameter is omitted, the track field remains unchanged• If an empty string is provided, the field will be cleared• This field is only valid for media applications on navigation displays

SWIFT

var mediaClock: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *mediaTrack;

SWIFT

var mediaTrack: String? { get set }

graphic

An image to be shown on supported displays

@discussion The value representing the image shown on supported displays

Notes: If omitted on supported displays, the displayed graphic shall not

change

@since SmartDeviceLink 2.0

secondaryGraphic

An image to be shown on supported displays

@discussion The value representing the image shown on supported displays

Notes: If omitted on supported displays, the displayed graphic shall not

change

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *graphic;

SWIFT

var graphic: SDLImage? { get set }

softButtons

The the Soft buttons defined by the App

@discussion A Vector value represemting the Soft buttons defined by the App

Notes:

• If omitted on supported displays, the currently displayed SoftButton

values will not change• Array Minsize: 0• Array Maxsize: 8

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *secondaryGraphic;

SWIFT

var secondaryGraphic: SDLImage? { get set }

customPresets

The Custom Presets defined by the App

@discussion A Vector value representing the Custom Presets defined by the

App

• If omitted on supported displays, the presets will be shown as not defined• Array Minsize: 0• Array Maxsize: 6

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SWIFT

var softButtons: [SDLSoftButton]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *customPresets;

metadataTags

Text Field Metadata

App defined metadata information. See MetadataStruct. Uses mainField1,

mainField2, mainField3, mainField4. If omitted on supported displays, the

currently set metadata tags will not change. If any text field contains no tags or

the none tag, the metadata tag for that textfield should be removed.

@since SmartDeviceLink 2.0

SWIFT

var customPresets: [String]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLMetadataTags *metadataTags;

SWIFT

var metadataTags: SDLMetadataTags? { get set }

SDLShowConstantTBT Class Reference

Section Contents

• -

initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distance• navigationText1• navigationText2• eta• timeToDestination• totalDistance• turnIcon• nextTurnIcon• distanceToManeuver• distanceToManeuverScale• maneuverComplete• softButtons

Overview

This RPC is used to update the user with navigation information for the

constantly shown screen (base screen), but also for the alert maneuver screen.

@since SmartDeviceLink 2.0

-

initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:tu

Undocumented

navigationText1

The first line of text in a multi-line overlay screen.

Optional, Max length 500 chars

OBJECTIVE-C

- (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

SWIFT

init(navigationText1: String?, navigationText2: String?, eta: String?, timeToDestination: String?, totalDistance: String?, turnIcon: SDLImage?, nextTurnIcon: SDLImage?, distanceToManeuver: Double, distanceToManeuverScale: Double, maneuverComplete: Bool, softButtons: [SDLSoftButton]?)

navigationText2

The second line of text in a multi-line overlay screen.

Optional, 1 - 500 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *navigationText1;

SWIFT

var navigationText1: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *navigationText2;

eta

Estimated Time of Arrival time at final destination

Optional, 1 - 500 chars

timeToDestination

The amount of time needed to reach the final destination

Optional, 1 - 500 chars

SWIFT

var navigationText2: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *eta;

SWIFT

var eta: String? { get set }

totalDistance

The distance to the final destination

Optional, 1 - 500 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *timeToDestination;

SWIFT

var timeToDestination: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *totalDistance;

turnIcon

An icon to show with the turn description

Optional

SeeSDLImage

nextTurnIcon

An icon to show with the next turn description

SWIFT

var totalDistance: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *turnIcon;

SWIFT

var turnIcon: SDLImage? { get set }

Optional

SeeSDLImage

distanceToManeuver

Fraction of distance till next maneuver (starting from when AlertManeuver is

triggered). Used to calculate progress bar.

Optional, Float, 0 - 1,000,000,000

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *nextTurnIcon;

SWIFT

var nextTurnIcon: SDLImage? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *distanceToManeuver;

distanceToManeuverScale

Distance till next maneuver (starting from) from previous maneuver. Used to

calculate progress bar.

Optional, Float, 0 - 1,000,000,000

SWIFT

var distanceToManeuver: (NSNumber & SDLFloat)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *distanceToManeuverScale;

SWIFT

var distanceToManeuverScale: (NSNumber & SDLFloat)? { get set }

maneuverComplete

If and when a maneuver has completed while an AlertManeuver is active, the

app must send this value set to TRUE in order to clear the AlertManeuver

overlay. If omitted the value will be assumed as FALSE.

Optional

softButtons

Three dynamic SoftButtons available (first SoftButton is fixed to “Turns”). If

omitted on supported displays, the currently displayed SoftButton values will

not change.

Optional, Array length 0 - 3

SeeSDLSoftButton

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *maneuverComplete;

SWIFT

var maneuverComplete: (NSNumber & SDLBool)? { get set }

SDLSingleTireStatus Class Reference

Section Contents

• status

Overview

Tire pressure status of a single tire.

@since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SWIFT

var softButtons: [SDLSoftButton]? { get set }

status

• The volume status of a single tire

Required

SDLSlider Class Reference

Section Contents

• -initWithNumTicks:position:• -initWithNumTicks:position:sliderHeader:sliderFooter:timeout:• -initWithNumTicks:position:sliderHeader:sliderFooters:timeout:• numTicks• position

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLComponentVolumeStatus _Nonnull status;

SWIFT

var status: SDLComponentVolumeStatus { get set }

• sliderHeader• sliderFooter• timeout

Overview

Creates a full screen or pop-up overlay (depending on platform) with a single

user controlled slider

HMILevel needs to be FULL

Since SmartDeviceLink 2.0

-initWithNumTicks:position:

Create an SDLSlider with only the number of ticks and position. Note that this is

not enough to get a SUCCESS response. You must supply additional data. See

below for required parameters.

OBJECTIVE-C

- (nonnull instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position;

SWIFT

init(numTicks: UInt8, position: UInt8)

numTicks

The number of ticks present on the slider.

position

The default starting position of the slider.

An SDLSlider RPC Request.

-

initWithNumTicks:position:sliderHeader:sliderFooter:timeout:

Create an SDLSlider with all required data and a static footer (or no footer).

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(nonnull NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout;

numTicks

The number of ticks present on the slider.

position

The default starting position of the slider.

sliderHeader

The header describing the slider.

sliderFooter

A static footer with text, or nil for no footer.

timeout

The length of time in milliseconds the popup should be displayed

before automatically disappearing.

SWIFT

init(numTicks: UInt8, position: UInt8, sliderHeader: String, sliderFooter: String?, timeout: UInt16)

PARAMETERS

An SDLSlider RPC Request.

-

initWithNumTicks:position:sliderHeader:sliderFooters:timeout:

Create an SDLSlider with all required data and a dynamic footer (or no footer).

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(nonnull NSString *)sliderHeader sliderFooters: (nullable NSArray<NSString *> *)sliderFooters timeout:(UInt16)timeout;

SWIFT

init(numTicks: UInt8, position: UInt8, sliderHeader: String, sliderFooters: [String]?, timeout: UInt16)

numTicks

The number of ticks present on the slider.

position

The default starting position of the slider.

sliderHeader

The header describing the slider.

sliderFooters

An array of footers. This should be the same length as numTicks as

each footer should correspond to a tick, or no footer if nil.

timeout

The length of time in milliseconds the popup should be displayed

before automatically disappearing.

An SDLSlider RPC Request.

PARAMETERS

RETURN VALUE

numTicks

Represents a number of selectable items on a horizontal axis

Required, Integer, 2 - 26

position

An Initial position of slider control

Required, Integer, 1 - 26

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull numTicks;

SWIFT

var numTicks: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull position;

sliderHeader

A text header to display

Required, Max length 500 chars

sliderFooter

A text footer to display

SWIFT

var position: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull sliderHeader;

SWIFT

var sliderHeader: String { get set }

@discussion For a static text footer, only one footer string shall be provided in

the array.

For a dynamic text footer, the number of footer text string in the array must

match the numTicks value.

For a dynamic text footer, text array string should correlate with potential slider

position index.

If omitted on supported displays, no footer text shall be displayed.

Optional, Array of Strings, Array length 1 - 26, Max string length 500 chars

timeout

An App defined timeout in milliseconds

@discussion Indicates how long of a timeout from the last action (i.e. sliding

control resets timeout).

If omitted, the value is set to 10000.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<NSString *> *sliderFooter;

SWIFT

var sliderFooter: [String]? { get set }

Optional, Integer, 1000 - 65535

SDLSliderResponse Class Reference

Section Contents

• sliderPosition

Overview

Response to SDLSlider

Since SmartDeviceLink 2.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

SWIFT

var timeout: (NSNumber & SDLInt)? { get set }

sliderPosition

The selected position of the slider.

SDLSoftButton Class Reference

Section Contents

• -initWithHandler:• -initWithType:text:image:highlighted:buttonId:systemAction:handler:• handler• type• text• image• isHighlighted

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *sliderPosition;

SWIFT

var sliderPosition: (NSNumber & SDLInt)? { get set }

• softButtonID• systemAction

Overview

Describes an on-screen button which may be presented in various contexts,

e.g. templates or alerts

-initWithHandler:

Undocumented

-

initWithType:text:image:highlighted:buttonId:systemAction:handler:

Undocumented

OBJECTIVE-C

- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler;

SWIFT

init(handler: SDLRPCButtonNotificationHandler? = nil)

handler

Undocumented

OBJECTIVE-C

- (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler;

SWIFT

init(type: SDLSoftButtonType, text: String?, image: SDLImage?, highlighted: Bool, buttonId: UInt16, systemAction: SDLSystemAction?, handler: SDLRPCButtonNotificationHandler? = nil)

OBJECTIVE-C

@property (copy, nonatomic) SDLRPCButtonNotificationHandler handler

type

Describes whether this soft button displays only text, only an image, or both

Required

text

Optional text to display (if defined as TEXT or BOTH type)

Optional

SWIFT

var handler: SDLRPCButtonNotificationHandler { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSoftButtonType _Nonnull type;

SWIFT

var type: SDLSoftButtonType { get set }

image

Optional image struct for SoftButton (if defined as IMAGE or BOTH type)

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *text;

SWIFT

var text: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *image;

SWIFT

var image: SDLImage? { get set }

isHighlighted

Displays in an alternate mode, e.g. with a colored background or foreground.

Depends on the IVI system.

Optional

softButtonID

Value which is returned via OnButtonPress / OnButtonEvent

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *isHighlighted;

SWIFT

var isHighlighted: (NSNumber & SDLBool)? { get set }

systemAction

Parameter indicating whether selecting a SoftButton shall call a specific system

action. This is intended to allow Notifications to bring the callee into full / focus;

or in the case of persistent overlays, the overlay can persist when a SoftButton

is pressed.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull softButtonID;

SWIFT

var softButtonID: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLSystemAction systemAction;

SDLSoftButtonCapabilities ClassReference

Section Contents

• shortPressAvailable• longPressAvailable• upDownAvailable• imageSupported

Overview

Contains information about a SoftButton’s capabilities.

@since SDL 2.0

shortPressAvailable

The button supports a short press.

Whenever the button is pressed short, onButtonPressed(SHORT) will be

invoked.

Required, Boolean

SWIFT

var systemAction: SDLSystemAction? { get set }

longPressAvailable

The button supports a LONG press.

Whenever the button is pressed long, onButtonPressed(LONG) will be invoked.

Required, Boolean

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull shortPressAvailable;

SWIFT

var shortPressAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull longPressAvailable;

upDownAvailable

The button supports “button down” and “button up”.

Whenever the button is pressed, onButtonEvent(DOWN) will be invoked.

Whenever the button is released, onButtonEvent(UP) will be invoked.

Required, Boolean

SWIFT

var longPressAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull upDownAvailable;

SWIFT

var upDownAvailable: NSNumber & SDLBool { get set }

imageSupported

The button supports referencing a static or dynamic image.

Required, Boolean

SDLSoftButtonObject Class Reference

Section Contents

• name• states• currentState• currentStateSoftButton• eventHandler

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull imageSupported;

SWIFT

var imageSupported: NSNumber & SDLBool { get set }

• -initWithName:states:initialStateName:handler:• -initWithName:state:handler:• -transitionToStateNamed:• -transitionToNextState• -stateWithName:

Overview

A soft button wrapper object that is capable of storing and switching between

states

name

The name of this button

states

All states available to this button

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull name;

SWIFT

var name: String { get }

currentState

The name of the current state of this soft button

OBJECTIVE-C

@property (readonly, strong, nonatomic) NSArray<SDLSoftButtonState *> *_Nonnull states;

SWIFT

var states: [SDLSoftButtonState] { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic) SDLSoftButtonState *_Nonnull currentState;

SWIFT

@NSCopying var currentState: SDLSoftButtonState { get }

currentStateSoftButton

Undocumented

eventHandler

The handler to be called when the button is in the current state and is pressed

OBJECTIVE-C

@property (strong, nonatomic, readonly) SDLSoftButton *currentStateSoftButton

SWIFT

var currentStateSoftButton: SDLSoftButton { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLRPCButtonNotificationHandler _Nonnull eventHandler;

-initWithName:states:initialStateName:handler:

Create a multi-state (or single-state, but you should use initWithName:state:

instead for that case) soft button. For example, a button that changes its image

or text, such as a repeat or shuffle button.

SWIFT

var eventHandler: SDLRPCButtonNotificationHandler { get }

OBJECTIVE-C

- (nonnull instancetype) initWithName:(nonnull NSString *)name states:(nonnull NSArray<SDLSoftButtonState *> *)statesinitialStateName:(nonnull NSString *)initialStateName handler:(nullable SDLRPCButtonNotificationHandler)eventHandler;

SWIFT

init(name: String, states: [SDLSoftButtonState], initialStateName: String, handler eventHandler: SDLRPCButtonNotificationHandler? = nil)

name

The name of the button

states

The states available to the button

eventHandler

The handler to be called when the button is in the current state and is

pressed

initialStateName

The first state to use

-initWithName:state:handler:

Create a single-state soft button. For example, a button that brings up a

Perform Interaction menu.

PARAMETERS

name

The name of the button

eventHandler

The handler to be called when the button is in the current state and is

pressed

state

The single state of the button

OBJECTIVE-C

- (nonnull instancetype)initWithName:(nonnull NSString *)name state:(nonnull SDLSoftButtonState *)state handler:(nullable SDLRPCButtonNotificationHandler) eventHandler;

SWIFT

init(name: String, state: SDLSoftButtonState, handler eventHandler: SDLRPCButtonNotificationHandler? = nil)

PARAMETERS

-transitionToStateNamed:

Transition the soft button to another state in the states property. The wrapper

considers all transitions valid (assuming a state with that name exists).

Warning

This method will throw an exception and crash your app (on purpose) if you

attempt an invalid transition. So…don’t do that.

stateName

The next state.

OBJECTIVE-C

- (BOOL)transitionToStateNamed:(nonnull NSString *)stateName;

SWIFT

func transition(toState stateName: String) -> Bool

PARAMETERS

YES if a state was found with that name, NO otherwise.

-transitionToNextState

Transition the soft button to the next state of the array set when in the states

property

-stateWithName:

Return a state from the state array with a specific name.

RETURN VALUE

OBJECTIVE-C

- (void)transitionToNextState;

SWIFT

func transitionToNextState()

stateName

The name of the state to return

The state, or nil if no state with that name exists

OBJECTIVE-C

- (nullable SDLSoftButtonState *)stateWithName:(nonnull NSString *)stateName;

SWIFT

func state(withName stateName: String) -> SDLSoftButtonState?

PARAMETERS

RETURN VALUE

SDLSoftButtonState Class Reference

Section Contents

• name• artwork• text• highlighted• systemAction• softButton• -init• -initWithStateName:text:image:• -initWithStateName:text:artwork:

Overview

Undocumented

name

The name of this soft button state

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSString *_Nonnull name;

artwork

The artwork to be used with this button or nil if it is text-only

text

The text to be used with this button or nil if it is image-only

SWIFT

var name: String { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLArtwork *artwork;

SWIFT

var artwork: SDLArtwork? { get }

highlighted

Whether or not the button should be highlighted on the UI

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSString *text;

SWIFT

var text: String? { get }

OBJECTIVE-C

@property (getter=isHighlighted, assign, readwrite, nonatomic) BOOL highlighted;

SWIFT

var isHighlighted: Bool { get set }

systemAction

A special system action

softButton

An SDLSoftButton describing this state

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSystemAction _Nonnull systemAction;

SWIFT

var systemAction: SDLSystemAction { get set }

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLSoftButton *_Nonnull softButton;

-init

Undocumented

-initWithStateName:text:image:

Create the soft button state. Either the text or artwork or both may be set.

SWIFT

var softButton: SDLSoftButton { get }

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

OBJECTIVE-C

- (nonnull instancetype)initWithStateName:(nonnull NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image;

stateName

The name of this state for the button

text

The text to be displayed on the button

image

The image to be displayed on the button. This is assumed to be a PNG,

non-persistant. The name will be the same as the state name.

A new soft button state

SWIFT

init(stateName: String, text: String?, image: UIImage?)

PARAMETERS

RETURN VALUE

-initWithStateName:text:artwork:

Create the soft button state. Either the text or artwork or both may be set.

stateName

The name of this state for the button

text

The text to be displayed on the button

OBJECTIVE-C

- (nonnull instancetype)initWithStateName:(nonnull NSString *)stateName text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork;

SWIFT

init(stateName: String, text: String?, artwork: SDLArtwork?)

PARAMETERS

artwork

The artwork to be displayed on the button

A new soft button state

SDLSpeak Class Reference

Section Contents

• -initWithTTS:• -initWithTTSChunks:• ttsChunks

Overview

Speaks a phrase over the vehicle audio system using SDL’s TTS (text-to-

speech) engine. The provided text to be spoken can be simply a text phrase, or

it can consist of phoneme specifications to direct SDL’s TTS engine to speak a “

speech-sculpted” phrase.

Receipt of the Response indicates the completion of the Speak operation,

regardless of how the Speak operation may have completed (i.e. successfully,

interrupted, terminated, etc.).

Requesting a new Speak operation while the application has another Speak

operation already in progress (i.e. no corresponding Response for that in-

progress Speak operation has been received yet) will terminate the in-progress

RETURN VALUE

Speak operation (causing its corresponding Response to be sent by SDL) and

begin the requested Speak operation

Requesting a new Speak operation while the application has an SDLAlert

operation already in progress (i.e. no corresponding Response for that in-

progress SDLAlert operation has been received yet) will result in the Speak

operation request being rejected (indicated in the Response to the Request)

Requesting a new SDLAlert operation while the application has a Speak

operation already in progress (i.e. no corresponding Response for that in-

progress Speak operation has been received yet) will terminate the in-progress

Speak operation (causing its corresponding Response to be sent by SDL) and

begin the requested SDLAlert operation

Requesting a new Speak operation while the application has a

SDLPerformInteraction operation already in progress (i.e. no corresponding

Response for that in-progress SDLPerformInteraction operation has been

received yet) will result in the Speak operation request being rejected

(indicated in the Response to the Request)

Requesting a SDLPerformInteraction operation while the application has a

Speak operation already in progress (i.e. no corresponding Response for that in-

progress Speak operation has been received yet) will terminate the in-progress

Speak operation (causing its corresponding Response to be sent by SDL) and

begin the requested SDLPerformInteraction operation

HMI Status Requirements: • HMILevel: FULL, Limited• AudioStreamingState: Any• SystemContext: MAIN, MENU, VR

Notes: • When SDLAlert is issued with MENU in effect, SDLAlert is queued and “played”

when MENU interaction is completed (i.e. SystemContext reverts to MAIN).When SDLAlert is issued with VR in effect, SDLAlert is queued and “played”when VR interaction is completed (i.e. SystemContext reverts to MAIN)

• When both SDLAlert and Speak are queued during MENU or VR, they are “played” back in the order in which they were queued, with all existing rules for “collisions” still in effect

Additional Notes: • Total character limit depends on platform.• Chunks are limited to 500 characters; however you can have multiple TTS

chunks.• On old systems there is a total character limit of 500 characters across all

chunks. This could vary according to the VCA.

@since SmartDeviceLink 1.0

SeeSDLAlert

-initWithTTS:

Undocumented

-initWithTTSChunks:

Undocumented

OBJECTIVE-C

- (instancetype)initWithTTS:(NSString *)ttsText;

SWIFT

init(tts ttsText: String)

OBJECTIVE-C

- (instancetype)initWithTTSChunks:(NSArray<SDLTTSChunk *> *)ttsChunks;

ttsChunks

An array of TTSChunk structs which, taken together, specify the phrase to be

spoken

@discussion The total length of the phrase composed from the ttsChunks

provided must be less than 500 characters or the request will be rejected

Required, Array of SDLTTSChunk, Array size 1 - 100

SeeSDLTTSChunk

SWIFT

init(ttsChunks: [SDLTTSChunk])

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLTTSChunk *> *_Nonnull ttsChunks;

SWIFT

var ttsChunks: [SDLTTSChunk] { get set }

SDLStartTime Class Reference

Section Contents

• -initWithHours:minutes:seconds:• hours• minutes• seconds

Overview

Describes the hour, minute and second values used to set the media clock.

@since SDL 1.0

-initWithHours:minutes:seconds:

Undocumented

OBJECTIVE-C

- (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds;

hours

The hour of the media clock

Some display types only support a max value of 19. If out of range, it will be

rejected.

Required, Integer, 0 - 59

SWIFT

init(hours: UInt8, minutes: UInt8, seconds: UInt8)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull hours;

SWIFT

var hours: NSNumber & SDLInt { get set }

minutes

The minute of the media clock

Required, Integer, 0 - 59

seconds

The second of the media clock

Required, Integer, 0 - 59

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull minutes;

SWIFT

var minutes: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull seconds;

SDLStreamingMediaConfiguration ClassReference

Section Contents

• securityManagers• maximumDesiredEncryption• customVideoEncoderSettings• dataSource• rootViewController• carWindowRenderingType• enableForcedFramerateSync• allowMultipleViewControllerOrientations• -init• -

initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewController:• -initWithSecurityManagers:• +secureConfigurationWithSecurityManagers:• +insecureConfiguration• +autostreamingInsecureConfigurationWithInitialViewController:

SWIFT

var seconds: NSNumber & SDLInt { get set }

• +autostreamingSecureConfigurationWithSecurityManagers:initialViewController:

Overview

Undocumented

securityManagers

Set security managers which could be used. This is primarily used with video

streaming applications to authenticate and perhaps encrypt traffic data.

maximumDesiredEncryption

What encryption level video/audio streaming should be. The default is

SDLStreamingEncryptionFlagAuthenticateAndEncrypt.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSArray<Class<SDLSecurityType>> *securityManagers;

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLStreamingEncryptionFlag maximumDesiredEncryption;

customVideoEncoderSettings

Properties to use for applications that utilize the video encoder for streaming.

See VTCompressionProperties.h for more details. For example, you can set

kVTCompressionPropertyKey_ExpectedFrameRate to set your framerate. Setting

the framerate this way will also set the framerate if you use CarWindow

automatic streaming.

Other properties you may want to try adjusting include

kVTCompressionPropertyKey_AverageBitRate and

kVTCompressionPropertyKey_DataRateLimits.

SWIFT

var maximumDesiredEncryption: SDLStreamingEncryptionFlag { get set }

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) NSDictionary<NSString *, id> *customVideoEncoderSettings;

SWIFT

var customVideoEncoderSettings: [String : Any]? { get set }

dataSource

Usable to change run time video stream setup behavior. Only use this and

modify the results if you really know what you’re doing. The head unit defaults

are generally good.

rootViewController

Set the initial view controller your video streaming content is within.

Activates the haptic view parser and CarWindow systems when set. This library

will also use that information to attempt to return the touched view to you in S

DLTouchManagerDelegate .

Note

If you wish to alter this rootViewController while streaming via CarWindow,

you must set a new rootViewController on SDLStreamingMediaManager and

this will update both the haptic view parser and CarWindow.

Warning

Apps using views outside of the UIView heirarchy (such as OpenGL) are

currently unsupported. If you app uses partial views in the heirarchy, only those

views will be discovered. Your OpenGL views will not be discoverable to a haptic

interface head unit and you will have to manually make these views

discoverable via the SDLSendHapticData RPC request.

Warning

OBJECTIVE-C

@property (readwrite, nonatomic, nullable) id<SDLStreamingMediaManagerDataSource> dataSource;

If the rootViewController is app UI and is set from the UIViewController class,

it should only be set after viewDidAppear:animated is called. Setting the rootVi

ewController in viewDidLoad or viewWillAppear:animated can cause weird

behavior when setting the new frame.

Warning

If setting the rootViewController when the app returns to the foreground, the

app should register for the UIApplicationDidBecomeActive notification and not

the UIApplicationWillEnterForeground notification. Setting the frame after a

notification from the latter can also cause weird behavior when setting the new

frame.

Warning

While viewDidLoad will fire, appearance methods will not.

carWindowRenderingType

Declares if CarWindow will use layer rendering or view rendering. Defaults to

layer rendering.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) UIViewController *rootViewController;

SWIFT

var rootViewController: UIViewController? { get set }

enableForcedFramerateSync

When YES, the StreamingMediaManager will run a CADisplayLink with the

framerate set to the video encoder settings

kVTCompressionPropertyKey_ExpectedFrameRate. This then forces

TouchManager (and CarWindow, if used) to sync their callbacks to the

framerate. If using CarWindow, this must be YES. If NO, enableSyncedPanning

on SDLTouchManager will be set to NO. Defaults to YES.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLCarWindowRenderingType carWindowRenderingType;

SWIFT

var carWindowRenderingType: SDLCarWindowRenderingType { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL enableForcedFramerateSync;

allowMultipleViewControllerOrientations

When YES, the StreamingMediaManager will disable its internal checks that the

rootViewController only has one supportedOrientation . Having multiple

orientations can cause streaming issues. If you wish to disable this check, set it

to YES. Defaults to NO.

SWIFT

var enableForcedFramerateSync: Bool { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL allowMultipleViewControllerOrientations;

SWIFT

var allowMultipleViewControllerOrientations: Bool { get set }

-init

Create an insecure video streaming configuration. No security managers will be

provided and the encryption flag will be set to None. If you’d like custom video

encoder settings, you can set the property manually.

The configuration

-

initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewCo

Manually set all the properties to the streaming media configuration

OBJECTIVE-C

- (nonnull instancetype)init;

SWIFT

init()

RETURN VALUE

securityManagers

The security managers to use or nil for none.

encryptionFlag

The maximum encrpytion supported. If the connected head unit

supports less than set here, it will still connect, but if it supports more

than set here, it will not connect.

videoSettings

Custom video encoder settings to be used in video streaming.

rootViewController

OBJECTIVE-C

- (nonnull instancetype)initWithSecurityManagers: (nullable NSArray<Class<SDLSecurityType>> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary<NSString *, id> *)videoSettings dataSource: (nullable id<SDLStreamingMediaManagerDataSource>)dataSource rootViewController:(nullable UIViewController *)rootViewController;

PARAMETERS

The UIViewController wih the content that is being streamed on, to use

for haptics if needed and possible (only works for UIViews)

The configuration

-initWithSecurityManagers:

Create a secure configuration for each of the security managers provided.

securityManagers

The security managers to be used. The encryption flag will be set to

AuthenticateAndEncrypt if any security managers are set.

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithSecurityManagers: (nonnull NSArray<Class<SDLSecurityType>> *)securityManagers;

PARAMETERS

The configuration

+secureConfigurationWithSecurityManagers:

Create a secure configuration for each of the security managers provided.

securityManagers

The security managers to be used. The encryption flag will be set to

AuthenticateAndEncrypt if any security managers are set.

The configuration

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)secureConfigurationWithSecurityManagers: (nonnull NSArray<Class<SDLSecurityType>> *)securityManagers;

PARAMETERS

RETURN VALUE

+insecureConfiguration

Create an insecure video streaming configuration. No security managers will be

provided and the encryption flag will be set to None. If you’d like custom video

encoder settings, you can set the property manually. This is equivalent to init .

The configuration

+autostreamingInsecureConfigurationWithInitialViewController:

Create a CarWindow insecure configuration with a view controller

OBJECTIVE-C

+ (nonnull instancetype)insecureConfiguration;

RETURN VALUE

OBJECTIVE-C

+ (nonnull instancetype)autostreamingInsecureConfigurationWithInitialViewController: (nonnull UIViewController *)initialViewController;

initialViewController

The initial view controller that will be streamed

The configuration

+autostreamingSecureConfigurationWithSecurityManagers:initialViewControlle

Create a CarWindow secure configuration with a view controller and security

managers

SWIFT

class func autostreamingInsecureConfiguration(withInitialViewController initialViewController: UIViewController) -> Self

PARAMETERS

RETURN VALUE

securityManagers

The security managers available for secure streaming use

initialViewController

The initial view controller that will be streamed, this can be a basic UIV

iewController if you need to set your actual streaming view controller

at a later time on SDLManager.streamingManager.rootViewController .

The configuration

OBJECTIVE-C

+ (nonnull instancetype)autostreamingSecureConfigurationWithSecurityManagers: (nonnull NSArray<Class<SDLSecurityType>> *)securityManagers initialViewController: (nonnull UIViewController *) initialViewController;

PARAMETERS

RETURN VALUE

SDLStreamingMediaManager ClassReference

Section Contents

• touchManager• audioManager• rootViewController• focusableItemManager• streamingSupported• videoConnected• videoEncrypted• audioConnected• audioEncrypted• videoStreamingPaused• screenSize• videoFormat• supportedFormats• pixelBufferPool• requestedEncryptionType• -init• -initWithConnectionManager:configuration:• -startWithProtocol:• -stop• -sendVideoData:• -sendVideoData:presentationTimestamp:• -sendAudioData:

Overview

Undocumented

touchManager

Touch Manager responsible for providing touch event notifications.

audioManager

Audio Manager responsible for managing streaming audio.

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLTouchManager *_Nonnull touchManager;

SWIFT

var touchManager: SDLTouchManager { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic) SDLAudioStreamManager *_Nonnull audioManager;

rootViewController

This property is used for SDLCarWindow, the ability to stream any view

controller. To start, you must set an initial view controller on SDLStreamingMed

iaConfiguration rootViewController . After streaming begins, you can replace

that view controller with a new root by placing the new view controller into this

property.

SWIFT

var audioManager: SDLAudioStreamManager { get }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) UIViewController *_Nonnull rootViewController;

SWIFT

var rootViewController: UIViewController { get set }

focusableItemManager

A haptic interface that can be updated to reparse views within the window

you’ve provided. Send a SDLDidUpdateProjectionView notification or call the

updateInterfaceLayout method to reparse. The “output” of this haptic

interface occurs in the touchManager property where it will call the delegate.

streamingSupported

Whether or not video streaming is supported

SeeSDLRegisterAppInterface SDLDisplayCapabilities

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) id<SDLFocusableItemLocatorType> focusableItemManager;

OBJECTIVE-C

@property (readonly, getter=isStreamingSupported, assign, nonatomic) BOOL streamingSupported;

videoConnected

Whether or not the video session is connected.

videoEncrypted

Whether or not the video session is encrypted. This may be different than the

requestedEncryptionType.

SWIFT

var isStreamingSupported: Bool { get }

OBJECTIVE-C

@property (readonly, getter=isVideoConnected, assign, nonatomic) BOOL videoConnected;

SWIFT

var isVideoConnected: Bool { get }

audioConnected

Whether or not the audio session is connected.

OBJECTIVE-C

@property (readonly, getter=isVideoEncrypted, assign, nonatomic) BOOL videoEncrypted;

SWIFT

var isVideoEncrypted: Bool { get }

OBJECTIVE-C

@property (readonly, getter=isAudioConnected, assign, nonatomic) BOOL audioConnected;

SWIFT

var isAudioConnected: Bool { get }

audioEncrypted

Whether or not the audio session is encrypted. This may be different than the

requestedEncryptionType.

videoStreamingPaused

Whether or not the video stream is paused due to either the application being

backgrounded, the HMI state being either NONE or BACKGROUND, or the video

stream not being ready.

OBJECTIVE-C

@property (readonly, getter=isAudioEncrypted, assign, nonatomic) BOOL audioEncrypted;

SWIFT

var isAudioEncrypted: Bool { get }

OBJECTIVE-C

@property (readonly, getter=isVideoStreamingPaused, assign, nonatomic) BOOL videoStreamingPaused;

screenSize

This is the current screen size of a connected display. This will be the size the

video encoder uses to encode the raw image data.

videoFormat

This is the agreed upon format of video encoder that is in use, or nil if not

currently connected.

SWIFT

var isVideoStreamingPaused: Bool { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) CGSize screenSize;

SWIFT

var screenSize: CGSize { get }

supportedFormats

A list of all supported video formats by this manager

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLVideoStreamingFormat *videoFormat;

SWIFT

var videoFormat: SDLVideoStreamingFormat? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic) NSArray<SDLVideoStreamingFormat *> *_Nonnull supportedFormats;

SWIFT

var supportedFormats: [SDLVideoStreamingFormat] { get }

pixelBufferPool

The pixel buffer pool reference returned back from an active

VTCompressionSessionRef encoder.

WarningThis will only return a valid pixel buffer pool after the encoder has beeninitialized (when the video session has started). @discussion Clients may callthis once and retain the resulting pool, this call is cheap enough that it’s OK tocall it once per frame.

requestedEncryptionType

The requested encryption type when a session attempts to connect. This

setting applies to both video and audio sessions.

DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt

OBJECTIVE-C

@property (readonly, assign, nonatomic, nullable) CVPixelBufferPoolRef pixelBufferPool;

SWIFT

unowned(unsafe) var pixelBufferPool: CVPixelBufferPool? { get }

-init

Undocumented

-initWithConnectionManager:configuration:

Create a new streaming media manager for navigation and VPM apps with a

specified configuration

OBJECTIVE-C

@property (assign, readwrite, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType;

SWIFT

var requestedEncryptionType: SDLStreamingEncryptionFlag { get set }

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

connectionManager

The pass-through for RPCs

configuration

The configuration of this streaming media session

A new streaming manager

OBJECTIVE-C

- (nonnull instancetype)initWithConnectionManager: (nonnull id<SDLConnectionManagerType>)connectionManager configuration: (nonnull SDLStreamingMediaConfiguration *)configuration;

PARAMETERS

RETURN VALUE

-startWithProtocol:

Start the manager with a completion block that will be called when startup

completes. This is used internally. To use an SDLStreamingMediaManager, you

should use the manager found on SDLManager .

-stop

Stop the manager. This method is used internally.

OBJECTIVE-C

- (void)startWithProtocol:(nonnull SDLProtocol *)protocol;

SWIFT

func start(with protocol: SDLProtocol)

OBJECTIVE-C

- (void)stop;

-sendVideoData:

This method receives raw image data and will run iOS8+‘s hardware video

encoder to turn the data into a video stream, which will then be passed to the

connected head unit.

imageBuffer

SWIFT

func stop()

OBJECTIVE-C

- (BOOL)sendVideoData:(nonnull CVImageBufferRef)imageBuffer;

SWIFT

func sendVideoData(_ imageBuffer: CVImageBuffer) -> Bool

PARAMETERS

A CVImageBufferRef to be encoded by Video Toolbox

Whether or not the data was successfully encoded and sent.

-sendVideoData:presentationTimestamp:

This method receives raw image data and will run iOS8+‘s hardware video

encoder to turn the data into a video stream, which will then be passed to the

connected head unit.

RETURN VALUE

OBJECTIVE-C

- (BOOL)sendVideoData:(nonnull CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp;

SWIFT

func sendVideoData(_ imageBuffer: CVImageBuffer, presentationTimestamp: CMTime) -> Bool

imageBuffer

A CVImageBufferRef to be encoded by Video Toolbox

presentationTimestamp

A presentation timestamp for the frame, or kCMTimeInvalid if

timestamp is unknown. If it’s valid, it must be greater than the previous

one.

Whether or not the data was successfully encoded and sent.

-sendAudioData:

This method receives PCM audio data and will attempt to send that data across

to the head unit for immediate playback

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (BOOL)sendAudioData:(nonnull NSData *)audioData;

audioData

The data in PCM audio format, to be played

Whether or not the data was successfully sent.

SDLSubscribeButton Class Reference

Section Contents

• -initWithHandler:• -initWithButtonName:handler:• handler• buttonName

SWIFT

func sendAudioData(_ audioData: Data) -> Bool

PARAMETERS

RETURN VALUE

Overview

Establishes a subscription to button notifications for HMI buttons. Buttons are

not necessarily physical buttons, but can also be “soft” buttons on a touch

screen, depending on the display in the vehicle. Once subscribed to a particular

button, an application will receive both SDLOnButtonEvent and

SDLOnButtonPress notifications whenever that button is pressed. The

application may also unsubscribe from notifications for a button by invoking the

SDLUnsubscribeButton operation

When a button is depressed, an SDLOnButtonEvent notification is sent to the

application with a ButtonEventMode of BUTTONDOWN. When that same button

is released, an SDLOnButtonEvent notification is sent to the application with a

ButtonEventMode of BUTTONUP

When the duration of a button depression (that is, time between depression

and release) is less than two seconds, an SDLOnButtonPress notification is sent

to the application (at the moment the button is released) with a

ButtonPressMode of SHORT. When the duration is two or more seconds, an

SDLOnButtonPress notification is sent to the application (at the moment the

two seconds have elapsed) with a ButtonPressMode of LONG

The purpose of SDLOnButtonPress notifications is to allow for programmatic

detection of long button presses similar to those used to store presets while

listening to the radio, for example

When a button is depressed and released, the sequence in which notifications

will be sent to the application is as follows:

For short presses:

• OnButtonEvent (ButtonEventMode = BUTTONDOWN)• OnButtonEvent (ButtonEventMode = BUTTONUP)• OnButtonPress (ButtonPressMode = SHORT)

For long presses:

• OnButtonEvent (ButtonEventMode = BUTTONDOWN)• OnButtonEvent (ButtonEventMode = BUTTONUP)• OnButtonPress (ButtonPressMode = LONG)

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 1.0

See SDLUnsubscribeButton

-initWithHandler:

Construct a SDLSubscribeButton with a handler callback when an event occurs.

handler

A callback that will be called when a button event occurs for the

subscribed button.

OBJECTIVE-C

- (nonnull instancetype)initWithHandler: (nullable SDLRPCButtonNotificationHandler)handler;

SWIFT

init(handler: SDLRPCButtonNotificationHandler? = nil)

PARAMETERS

An SDLSubscribeButton object

-initWithButtonName:handler:

Undocumented

handler

A handler that will let you know when the button you subscribed to is selected.

WarningThis will only work if you use SDLManager.

RETURN VALUE

OBJECTIVE-C

- (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler;

SWIFT

init(buttonName: SDLButtonName, handler: SDLRPCButtonNotificationHandler? = nil)

buttonName

The name of the button to subscribe to @discussion An enum value, see

SDLButtonName

OBJECTIVE-C

@property (readwrite, copy, nonatomic) SDLRPCButtonNotificationHandler _Nonnull handler;

SWIFT

var handler: SDLRPCButtonNotificationHandler { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

SDLSubscribeVehicleData ClassReference

Section Contents

• -

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque

SWIFT

var buttonName: SDLButtonName { get set }

• accPedalPosition• steeringWheelAngle• eCallInfo• airbagStatus• emergencyEvent• clusterModeStatus• myKey

Overview

Subscribes for specific published vehicle data items. The data will be only sent,

if it has changed. The application will be notified by the onVehicleData

notification whenever new data is available. The update rate is very much

dependent on sensors, vehicle architecture and vehicle type. Be also prepared

for the situation that a signal is not available on a vehicle

Function Group: Location, VehicleInfo and DrivingChara

HMILevel needs to be FULL, LIMITED or BACKGROUND

Since SmartDeviceLink 2.0

See SDLUnsubscribeVehicleData SDLGetVehicleData

-

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clu

Initialize a subscribe RPC with various possible to describe to

OBJECTIVE-C

- (nonnull instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus;

accelerationPedalPosition

Subcribe to accelerationPedalPosition

airbagStatus

Subcribe to airbagStatus

beltStatus

Subcribe to beltStatus

bodyInformation

Subcribe to bodyInformation

SWIFT

init(accelerationPedalPosition: Bool, airbagStatus: Bool, beltStatus: Bool, bodyInformation: Bool, clusterModeStatus: Bool, deviceStatus: Bool, driverBraking: Bool, eCallInfo: Bool, emergencyEvent: Bool, engineTorque: Bool, externalTemperature: Bool, fuelLevel: Bool, fuelLevelState: Bool, gps: Bool, headLampStatus: Bool, instantFuelConsumption: Bool, myKey: Bool, odometer: Bool, prndl: Bool, rpm: Bool, speed: Bool, steeringWheelAngle: Bool, tirePressure: Bool, wiperStatus: Bool)

PARAMETERS

clusterModeStatus

Subcribe to clusterModeStatus

deviceStatus

Subcribe to deviceStatus

driverBraking

Subcribe to driverBraking

eCallInfo

Subcribe to eCallInfo

emergencyEvent

Subcribe to v

engineTorque

Subcribe to engineTorque

externalTemperature

Subcribe to externalTemperature

fuelLevel

Subcribe to fuelLevel

fuelLevelState

Subcribe to fuelLevelState

gps

Subcribe to gps

headLampStatus

Subcribe to headLampStatus

instantFuelConsumption

Subcribe to instantFuelConsumption

myKey

Subcribe to myKey

odometer

Subcribe to odometer

prndl

Subcribe to prndl

rpm

Subcribe to rpm

speed

Subcribe to speed

steeringWheelAngle

Subcribe to steeringWheelAngle

tirePressure

Subcribe to tirePressure

wiperStatus

Subcribe to wiperStatus

The RPC

gps

A boolean value. If true, subscribes Gps data

RETURN VALUE

speed

A boolean value. If true, subscribes speed data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

SWIFT

var gps: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

SWIFT

var speed: (NSNumber & SDLBool)? { get set }

rpm

A boolean value. If true, subscribes rpm data

fuelLevel

A boolean value. If true, subscribes FuelLevel data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

SWIFT

var rpm: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

fuelLevel_State

A boolean value. If true, subscribes fuelLevel_State data

instantFuelConsumption

A boolean value. If true, subscribes instantFuelConsumption data

SWIFT

var fuelLevel: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel_State;

SWIFT

var fuelLevel_State: (NSNumber & SDLBool)? { get set }

externalTemperature

A boolean value. If true, subscribes externalTemperature data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *instantFuelConsumption;

SWIFT

var instantFuelConsumption: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature;

SWIFT

var externalTemperature: (NSNumber & SDLBool)? { get set }

prndl

A boolean value. If true, subscribes Currently selected gear data

tirePressure

A boolean value. If true, subscribes tire pressure status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

SWIFT

var prndl: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *tirePressure;

odometer

A boolean value. If true, subscribes odometer data

beltStatus

A boolean value. If true, subscribes belt Status data

SWIFT

var tirePressure: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

SWIFT

var odometer: (NSNumber & SDLBool)? { get set }

bodyInformation

A boolean value. If true, subscribes body Information data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

SWIFT

var beltStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *bodyInformation;

SWIFT

var bodyInformation: (NSNumber & SDLBool)? { get set }

deviceStatus

A boolean value. If true, subscribes device Status data

driverBraking

A boolean value. If true, subscribes driver Braking data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *deviceStatus;

SWIFT

var deviceStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *driverBraking;

wiperStatus

A boolean value. If true, subscribes wiper Status data

headLampStatus

A boolean value. If true, subscribes Head Lamp Status data

SWIFT

var driverBraking: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *wiperStatus;

SWIFT

var wiperStatus: (NSNumber & SDLBool)? { get set }

engineTorque

A boolean value. If true, subscribes Engine Torque data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *headLampStatus;

SWIFT

var headLampStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *engineTorque;

SWIFT

var engineTorque: (NSNumber & SDLBool)? { get set }

accPedalPosition

A boolean value. If true, means the accPedalPosition data has been subscribed.

steeringWheelAngle

A boolean value. If true, means the steeringWheelAngle data has been

subscribed.

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *accPedalPosition;

SWIFT

var accPedalPosition: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *steeringWheelAngle;

eCallInfo

Subscribe to eCallInfo

airbagStatus

Subscribe to airbagStatus

SWIFT

var steeringWheelAngle: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *eCallInfo;

SWIFT

var eCallInfo: (NSNumber & SDLBool)? { get set }

emergencyEvent

Subscribe to emergencyEvent

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *airbagStatus;

SWIFT

var airbagStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *emergencyEvent;

SWIFT

var emergencyEvent: (NSNumber & SDLBool)? { get set }

clusterModeStatus

Subscribe to clusterModeStatus

myKey

Subscribe to myKey

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *clusterModeStatus;

SWIFT

var clusterModeStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *myKey;

SDLSubscribeVehicleDataResponseClass Reference

Section Contents

• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle

SWIFT

var myKey: (NSNumber & SDLBool)? { get set }

• eCallInfo• airbagStatus• emergencyEvent• clusterModes• myKey

Overview

Response to SDLSubscribeVehicleData

Since SmartDeviceLink 2.0

gps

The result of requesting to subscribe to the GPSData.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *gps;

SWIFT

var gps: SDLVehicleDataResult? { get set }

speed

The result of requesting to subscribe to the vehicle speed in kilometers per

hour.

Optional

rpm

The result of requesting to subscribe to the number of revolutions per minute of

the engine.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *speed;

SWIFT

var speed: SDLVehicleDataResult? { get set }

fuelLevel

The result of requesting to subscribe to the fuel level in the tank (percentage)

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *rpm;

SWIFT

var rpm: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel;

fuelLevel_State

The result of requesting to subscribe to the fuel level state.

Optional

instantFuelConsumption

The result of requesting to subscribe to the instantaneous fuel consumption in

microlitres.

SWIFT

var fuelLevel: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State;

SWIFT

var fuelLevel_State: SDLVehicleDataResult? { get set }

Optional

externalTemperature

The result of requesting to subscribe to the external temperature in degrees

celsius.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption;

SWIFT

var instantFuelConsumption: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature;

prndl

The result of requesting to subscribe to the PRNDL status.

Optional

tirePressure

The result of requesting to subscribe to the tireStatus.

Optional

SWIFT

var externalTemperature: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *prndl;

SWIFT

var prndl: SDLVehicleDataResult? { get set }

odometer

The result of requesting to subscribe to the odometer in km.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure;

SWIFT

var tirePressure: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *odometer;

beltStatus

The result of requesting to subscribe to the status of the seat belts.

Optional

bodyInformation

The result of requesting to subscribe to the body information including power

modes.

SWIFT

var odometer: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus;

SWIFT

var beltStatus: SDLVehicleDataResult? { get set }

Optional

deviceStatus

The result of requesting to subscribe to the device status including signal and

battery strength.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation;

SWIFT

var bodyInformation: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus;

driverBraking

The result of requesting to subscribe to the status of the brake pedal.

Optional

wiperStatus

The result of requesting to subscribe to the status of the wipers.

Optional

SWIFT

var deviceStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking;

SWIFT

var driverBraking: SDLVehicleDataResult? { get set }

headLampStatus

The result of requesting to subscribe to the status of the head lamps.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus;

SWIFT

var wiperStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus;

engineTorque

The result of requesting to subscribe to the torque value for engine (in Nm) on

non-diesel variants.

Optional

accPedalPosition

The result of requesting to subscribe to the accelerator pedal position

(percentage depressed)

SWIFT

var headLampStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque;

SWIFT

var engineTorque: SDLVehicleDataResult? { get set }

Optional

steeringWheelAngle

The result of requesting to subscribe to the current angle of the steering wheel

(in deg)

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition;

SWIFT

var accPedalPosition: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle;

eCallInfo

The result of requesting to subscribe to the emergency call info

Optional

airbagStatus

The result of requesting to subscribe to the airbag status

Optional

SWIFT

var steeringWheelAngle: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo;

SWIFT

var eCallInfo: SDLVehicleDataResult? { get set }

emergencyEvent

The result of requesting to subscribe to the emergency event

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus;

SWIFT

var airbagStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent;

clusterModes

The result of requesting to subscribe to the cluster modes

Optional

myKey

The result of requesting to subscribe to the myKey status

Optional

SWIFT

var emergencyEvent: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes;

SWIFT

var clusterModes: SDLVehicleDataResult? { get set }

SDLSyncMsgVersion Class Reference

Section Contents

• -initWithMajorVersion:minorVersion:patchVersion:• majorVersion• minorVersion• patchVersion

Overview

Specifies the version number of the SDL V4 interface. This is used by both the

application and SDL to declare what interface version each is using.

@since SDL 1.0

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *myKey;

SWIFT

var myKey: SDLVehicleDataResult? { get set }

-initWithMajorVersion:minorVersion:patchVersion:

Undocumented

majorVersion

The major version indicates versions that is not-compatible to previous versions

Required, Integer, 1 - 10

OBJECTIVE-C

- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion;

SWIFT

init(majorVersion: UInt8, minorVersion: UInt8, patchVersion: UInt8)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull majorVersion;

minorVersion

The minor version indicates a change to a previous version that should still

allow to be run on an older version (with limited functionality)

Required, Integer, 0 - 1000

patchVersion

Allows backward-compatible fixes to the API without increasing the minor

version of the interface

SWIFT

var majorVersion: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull minorVersion;

SWIFT

var minorVersion: NSNumber & SDLInt { get set }

Optional, Integer, 0 - 1000

SDLSystemCapability Class Reference

Section Contents

• -initWithNavigationCapability:• -initWithPhoneCapability:• -initWithVideoStreamingCapability:• -initWithRemoteControlCapability:• systemCapabilityType• navigationCapability• phoneCapability• videoStreamingCapability• remoteControlCapability

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *patchVersion;

SWIFT

var patchVersion: (NSNumber & SDLInt)? { get set }

Overview

The systemCapabilityType indicates which type of data should be changed and

identifies which data object exists in this struct. For example, if the

SystemCapability Type is NAVIGATION then a “navigationCapability” should

exist.

First implemented in SDL Core v4.4

-initWithNavigationCapability:

Undocumented

-initWithPhoneCapability:

Undocumented

OBJECTIVE-C

- (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability;

SWIFT

init(navigationCapability capability: SDLNavigationCapability)

-initWithVideoStreamingCapability:

Undocumented

OBJECTIVE-C

- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability;

SWIFT

init(phoneCapability capability: SDLPhoneCapability)

OBJECTIVE-C

- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability;

SWIFT

init(videoStreamingCapability capability: SDLVideoStreamingCapability)

-initWithRemoteControlCapability:

Undocumented

systemCapabilityType

Used as a descriptor of what data to expect in this struct. The corresponding

param to this enum should be included and the only other parameter included.

OBJECTIVE-C

- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability;

SWIFT

init(remoteControlCapability capability: SDLRemoteControlCapabilities)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSystemCapabilityType _Nonnull systemCapabilityType;

navigationCapability

Describes extended capabilities for onboard navigation system

phoneCapability

Describes extended capabilities of the module’s phone feature

SWIFT

var systemCapabilityType: SDLSystemCapabilityType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLNavigationCapability *navigationCapability;

SWIFT

var navigationCapability: SDLNavigationCapability? { get set }

videoStreamingCapability

Describes extended capabilities of the module’s phone feature

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLPhoneCapability *phoneCapability;

SWIFT

var phoneCapability: SDLPhoneCapability? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVideoStreamingCapability *videoStreamingCapability;

remoteControlCapability

Describes extended capabilities of the module’s phone feature

SWIFT

var videoStreamingCapability: SDLVideoStreamingCapability? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLRemoteControlCapabilities *remoteControlCapability;

SWIFT

var remoteControlCapability: SDLRemoteControlCapabilities? { get set }

SDLSystemCapabilityManager ClassReference

Section Contents

• displayCapabilities• hmiCapabilities• softButtonCapabilities• buttonCapabilities• presetBankCapabilities• hmiZoneCapabilities• speechCapabilities• prerecordedSpeechCapabilities• vrCapability• audioPassThruCapabilities• pcmStreamCapability• navigationCapability• phoneCapability• videoStreamingCapability• remoteControlCapability• -init• -initWithConnectionManager:• -stop• -updateCapabilityType:completionHandler:

Overview

Undocumented

displayCapabilities

SeeSDLDisplayCapabilities

Optional

hmiCapabilities

SeeSDLHMICapabilities Optional

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLDisplayCapabilities *displayCapabilities;

SWIFT

var displayCapabilities: SDLDisplayCapabilities? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLHMICapabilities *hmiCapabilities;

softButtonCapabilities

If returned, the platform supports on-screen SoftButtons

SeeSDLSoftButtonCapabilities Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities

buttonCapabilities

SeeSDLButtonCapabilities

SWIFT

var hmiCapabilities: SDLHMICapabilities? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;

SWIFT

var softButtonCapabilities: [SDLSoftButtonCapabilities]? { get }

Optional, Array of length 1 - 100, of SDLButtonCapabilities

presetBankCapabilities

If returned, the platform supports custom on-screen Presets

SeeSDLPresetBankCapabilities Optional

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLButtonCapabilities *> *buttonCapabilities;

SWIFT

var buttonCapabilities: [SDLButtonCapabilities]? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLPresetBankCapabilities *presetBankCapabilities;

hmiZoneCapabilities

SeeSDLHMIZoneCapabilities Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities

speechCapabilities

SeeSDLSpeechCapabilities Optional, Array of length 1 - 100, of SDLSpeechCapabilities

SWIFT

var presetBankCapabilities: SDLPresetBankCapabilities? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;

SWIFT

var hmiZoneCapabilities: [SDLHMIZoneCapabilities]? { get }

prerecordedSpeechCapabilities

SeeSDLPrerecordedSpeech Optional, Array of length 1 - 100, of SDLPrerecordedSpeech

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLSpeechCapabilities> *speechCapabilities;

SWIFT

var speechCapabilities: [SDLSpeechCapabilities]? { get }

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLPrerecordedSpeech> *prerecordedSpeechCapabilities;

vrCapability

SeeSDLVRCapabilities True if the head unit supports voice recognition; false if not.

audioPassThruCapabilities

SeeSDLAudioPassThruCapabilities Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities

SWIFT

var prerecordedSpeechCapabilities: [SDLPrerecordedSpeech]? { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL vrCapability;

SWIFT

var vrCapability: Bool { get }

pcmStreamCapability

SeeSDLAudioPassThruCapabilities Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;

SWIFT

var audioPassThruCapabilities: [SDLAudioPassThruCapabilities]? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLAudioPassThruCapabilities *pcmStreamCapability;

navigationCapability

If returned, the platform supports navigation

SeeSDLNavigationCapability Optional

phoneCapability

If returned, the platform supports making phone calls

See

SWIFT

var pcmStreamCapability: SDLAudioPassThruCapabilities? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLNavigationCapability *navigationCapability;

SWIFT

var navigationCapability: SDLNavigationCapability? { get }

SDLPhoneCapability Optional

videoStreamingCapability

If returned, the platform supports video streaming

SeeSDLVideoStreamingCapability Optional

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLPhoneCapability *phoneCapability;

SWIFT

var phoneCapability: SDLPhoneCapability? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLVideoStreamingCapability *videoStreamingCapability;

remoteControlCapability

If returned, the platform supports remote control capabilities

SeeSDLRemoteControlCapabilities Optional

-init

Init is unavailable. Dependencies must be injected using

initWithConnectionManager:

SWIFT

var videoStreamingCapability: SDLVideoStreamingCapability? { get }

OBJECTIVE-C

@property (readonly, strong, nonatomic, nullable) SDLRemoteControlCapabilities *remoteControlCapability;

SWIFT

var remoteControlCapability: SDLRemoteControlCapabilities? { get }

nil

-initWithConnectionManager:

Creates a new system capability manager with a specified connection manager

manager

A connection manager to use to forward on RPCs

OBJECTIVE-C

- (nonnull instancetype)init;

RETURN VALUE

OBJECTIVE-C

- (nonnull instancetype)initWithConnectionManager: (nonnull id<SDLConnectionManagerType>)manager;

PARAMETERS

An instance of SDLSystemCapabilityManager

-stop

Stops the manager. This method is used internally.

-updateCapabilityType:completionHandler:

Retrieves a capability type from the remote system. This function must be

called in order to retrieve the values of navigationCapability ,

phoneCapability , videoStreamingCapability and remoteControlCapability . If

you do not call this method first, those values will be nil. After calling this

method, assuming there is no error in the handler, you may retrieve the

capability you requested from the manager within the handler.

RETURN VALUE

OBJECTIVE-C

- (void)stop;

SWIFT

func stop()

type

The type of capability to retrieve

handler

The handler to be called when the retrieval is complete

OBJECTIVE-C

- (void)updateCapabilityType:(nonnull SDLSystemCapabilityType)type completionHandler:(nonnull SDLUpdateCapabilityHandler)handler;

SWIFT

func updateCapabilityType(_ type: SDLSystemCapabilityType, completionHandler handler: @escaping SDLUpdateCapabilityHandler)

PARAMETERS

SDLTTSChunk Class Reference

Section Contents

• -initWithText:type:• +textChunksFromString:• +sapiChunksFromString:• +lhPlusChunksFromString:• +prerecordedChunksFromString:• +silenceChunks• text• type

Overview

Specifies what is to be spoken. This can be simply a text phrase, which SDL will

speak according to its own rules. It can also be phonemes from either the

Microsoft SAPI phoneme set, or from the LHPLUS phoneme set. It can also be a

pre-recorded sound in WAV format (either developer-defined, or provided by the

SDL platform).

In SDL, words, and therefore sentences, can be built up from phonemes and are

used to explicitly provide the proper pronounciation to the TTS engine. For

example, to have SDL pronounce the word “read” as “red”, rather than as when

it is pronounced like “reed”, the developer would use phonemes to express this

desired pronounciation.

For more information about phonemes, see http://en.wikipedia.org/wiki/

Phoneme.

@since SmartDeviceLink 1.0

-initWithText:type:

Initialize with text and a type

text

The string to be spoken

type

The type of text the string is

OBJECTIVE-C

- (nonnull instancetype)initWithText:(nonnull NSString *)text type:(nonnull SDLSpeechCapabilities)type;

SWIFT

init(text: String, type: SDLSpeechCapabilities)

PARAMETERS

The RPC

+textChunksFromString:

Create TTS using text

string

The text chunk

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLTTSChunk *> *)textChunksFromString: (nonnull NSString *)string;

SWIFT

class func textChunks(from string: String) -> [SDLTTSChunk]

PARAMETERS

The RPC

+sapiChunksFromString:

Create TTS using SAPI

string

The SAPI chunk

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLTTSChunk *> *)sapiChunksFromString: (nonnull NSString *)string;

SWIFT

class func sapiChunks(from string: String) -> [SDLTTSChunk]

PARAMETERS

The RPC

+lhPlusChunksFromString:

Create TTS using LH Plus

string

The LH Plus chunk

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLTTSChunk *> *)lhPlusChunksFromString: (nonnull NSString *)string;

SWIFT

class func lhPlusChunks(from string: String) -> [SDLTTSChunk]

PARAMETERS

The RPC

+prerecordedChunksFromString:

Create TTS using prerecorded chunks

string

The prerecorded chunk

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLTTSChunk *> *)prerecordedChunksFromString: (nonnull NSString *)string;

SWIFT

class func prerecordedChunks(from string: String) -> [SDLTTSChunk]

PARAMETERS

The RPC

+silenceChunks

Create TTS using silence

The RPC

RETURN VALUE

OBJECTIVE-C

+ (nonnull NSArray<SDLTTSChunk *> *)silenceChunks;

SWIFT

class func silenceChunks() -> [SDLTTSChunk]

RETURN VALUE

text

Text to be spoken, or a phoneme specification, or the name of a pre-recorded

sound. The contents of this field are indicated by the “type” field.

Required, Max length 500

type

The type of information in the “text” field (e.g. phrase to be spoken, phoneme

specification, name of pre-recorded sound).

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull text;

SWIFT

var text: String { get set }

SDLTemperature Class Reference

Section Contents

• -initWithUnit:value:• unit• value

Overview

Struct using in Remote Control representing a temperature.

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSpeechCapabilities _Nonnull type;

SWIFT

var type: SDLSpeechCapabilities { get set }

-initWithUnit:value:

Undocumented

unit

Temperature Unit

Required, float

OBJECTIVE-C

- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value;

SWIFT

init(unit: SDLTemperatureUnit, value: Float)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTemperatureUnit _Nonnull unit;

value

Temperature Value in TemperatureUnit specified unit. Range depends on OEM

and is not checked by SDL.

Required, float

SWIFT

var unit: SDLTemperatureUnit { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull value;

SWIFT

var value: NSNumber & SDLFloat { get set }

SDLTextField Class Reference

Section Contents

• name• characterSet• width• rows

Overview

Struct defining the characteristics of a displayed field on the HMI.

@since SDL 1.0

name

The enumeration identifying the field.

SeeSDLTextFieldName Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLTextFieldName _Nonnull name;

characterSet

The character set that is supported in this field.

SeeSDLCharacterSet Required

width

The number of characters in one row of this field.

SWIFT

var name: SDLTextFieldName { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLCharacterSet _Nonnull characterSet;

SWIFT

var characterSet: SDLCharacterSet { get set }

Required, Integer 1 - 500

rows

The number of rows for this text field.

Required, Integer 1 - 8

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull width;

SWIFT

var width: NSNumber & SDLInt { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull rows;

SDLTireStatus Class Reference

Section Contents

• pressureTelltale• leftFront• rightFront• leftRear• rightRear• innerLeftRear• innerRightRear

Overview

Struct used in Vehicle Data; the status and pressure of the tires.

pressureTelltale

Status of the Tire Pressure Telltale. See WarningLightStatus.

Required

SWIFT

var rows: NSNumber & SDLInt { get set }

leftFront

The status of the left front tire.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLWarningLightStatus _Nonnull pressureTelltale;

SWIFT

var pressureTelltale: SDLWarningLightStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull leftFront;

rightFront

The status of the right front tire.

Required

leftRear

The status of the left rear tire.

Required

SWIFT

var leftFront: SDLSingleTireStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull rightFront;

SWIFT

var rightFront: SDLSingleTireStatus { get set }

rightRear

The status of the right rear tire.

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull leftRear;

SWIFT

var leftRear: SDLSingleTireStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull rightRear;

innerLeftRear

The status of the inner left rear tire.

Required

innerRightRear

The status of the innter right rear tire.

Required

SWIFT

var rightRear: SDLSingleTireStatus { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull innerLeftRear;

SWIFT

var innerLeftRear: SDLSingleTireStatus { get set }

SDLTouch Class Reference

Section Contents

• -initWithTouchEvent:• identifier• location• timeStamp• isFirstFinger• isSecondFinger

Overview

Undocumented

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLSingleTireStatus *_Nonnull innerRightRear;

SWIFT

var innerRightRear: SDLSingleTireStatus { get set }

-initWithTouchEvent:

@abstract Initializes a touch.

touchEvent

Incoming touch event from onOnTouchEvent notification.

SDLTouch Instance of SDLTouch.

OBJECTIVE-C

- (nonnull instancetype)initWithTouchEvent:(nonnull SDLTouchEvent *)touchEvent;

SWIFT

init(touchEvent: SDLTouchEvent)

PARAMETERS

RETURN VALUE

identifier

@abstract Identifier of the touch’s finger. Refer to SDLTouchIdentifier for valid

identifiers.

location

@abstract Location of touch point, in the head unit’s coordinate system.

OBJECTIVE-C

@property (readonly, assign, nonatomic) NSInteger identifier;

SWIFT

var identifier: Int { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) CGPoint location;

timeStamp

@abstract Timestamp in which the touch occured.

isFirstFinger

@abstract Returns whether or not this touch is a first finger.

SWIFT

var location: CGPoint { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) NSUInteger timeStamp;

SWIFT

var timeStamp: UInt { get }

isSecondFinger

@abstract Returns whether or not this touch is a second finger.

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL isFirstFinger;

SWIFT

var isFirstFinger: Bool { get }

OBJECTIVE-C

@property (readonly, assign, nonatomic) BOOL isSecondFinger;

SWIFT

var isSecondFinger: Bool { get }

SDLTouchCoord Class Reference

Section Contents

• x• y

Overview

The coordinate of a touch, used in a touch event

x

The x value of the touch coordinate

Required, float 0 - 10000

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull x;

SWIFT

var x: NSNumber & SDLFloat { get set }

y

The y value of the touch coordinate

Required, float 0 - 10000

SDLTouchEvent Class Reference

Section Contents

• touchEventId• timeStamp

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull y;

SWIFT

var y: NSNumber & SDLFloat { get set }

• coord

Overview

A touch which occurred on the IVI system during projection

touchEventId

A touch’s unique identifier. The application can track the current touch events

by id.

If a touch event has type begin, the id should be added to the set of touches.

If a touch event has type end, the id should be removed from the set of

touches.

Required, 0-9

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull touchEventId;

SWIFT

var touchEventId: NSNumber & SDLInt { get set }

timeStamp

The time that the touch was recorded. This number can the time since the

beginning of the session or something else as long as the units are in

milliseconds.

The timestamp is used to determined the rate of change of position of a touch.

The application also uses the time to verify whether two touches, with different

ids, are part of a single action by the user.

If there is only a single timestamp in this array, it is the same for every

coordinate in the coordinates array.

Required, array size 1-1000, contains integer value 0-2000000000

coord

The touch’s coordinate

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *_Nonnull timeStamp;

SWIFT

var timeStamp: [NSNumber & SDLInt] { get set }

Required, array size 1-1000

SDLTouchEventCapabilities ClassReference

Section Contents

• pressAvailable• multiTouchAvailable• doublePressAvailable

Overview

The capabilities of touches during projection applications

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSArray<SDLTouchCoord *> *_Nonnull coord;

SWIFT

var coord: [SDLTouchCoord] { get set }

pressAvailable

Whether or not long presses are available

multiTouchAvailable

Whether or not multi-touch (e.g. a pinch gesture) is available

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull pressAvailable;

SWIFT

var pressAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull multiTouchAvailable;

doublePressAvailable

Whether or not a double tap is available

SWIFT

var multiTouchAvailable: NSNumber & SDLBool { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull doublePressAvailable;

SWIFT

var doublePressAvailable: NSNumber & SDLBool { get set }

SDLTouchManager Class Reference

Section Contents

• touchEventDelegate• touchEventHandler• tapDistanceThreshold• panDistanceThreshold• tapTimeThreshold• movementTimeThreshold• enableSyncedPanning• touchEnabled• -cancelPendingTouches• -init• -initWithHitTester:• -syncFrame

Overview

Undocumented

touchEventDelegate

Notified of processed touches such as pinches, pans, and taps

OBJECTIVE-C

@property (readwrite, nonatomic, nullable) id<SDLTouchManagerDelegate> touchEventDelegate;

touchEventHandler

@abstract Returns all OnTouchEvent notifications as SDLTouch and

SDLTouchType objects.

tapDistanceThreshold

Distance between two taps on the screen, in the head unit’s coordinate system,

used for registering double-tap callbacks.

NoteDefaults to 50 px.

OBJECTIVE-C

@property (readwrite, copy, nonatomic, nullable) SDLTouchEventHandler touchEventHandler;

SWIFT

var touchEventHandler: SDLTouchEventHandler? { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) CGFloat tapDistanceThreshold;

panDistanceThreshold

Minimum distance for a pan gesture in the head unit’s coordinate system, used

for registering pan callbacks.

NoteDefaults to 8 px.

tapTimeThreshold

@abstract Time (in seconds) between tap events to register a double-tap

callback. @remark Default is 0.4 seconds.

SWIFT

var tapDistanceThreshold: CGFloat { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) CGFloat panDistanceThreshold;

SWIFT

var panDistanceThreshold: CGFloat { get set }

movementTimeThreshold

@abstract Time (in seconds) between movement events to register panning or

pinching callbacks. @remark Default is 0.05 seconds.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) CGFloat tapTimeThreshold;

SWIFT

var tapTimeThreshold: CGFloat { get set }

OBJECTIVE-C

@property (assign, readwrite, nonatomic) CGFloat movementTimeThreshold;

SWIFT

var movementTimeThreshold: CGFloat { get set }

enableSyncedPanning

If set to NO, the display link syncing will be ignored and movementTimeThresh

old will be used. Defaults to YES.

touchEnabled

@abstract Boolean denoting whether or not the touch manager should deliver

touch event callbacks. @remark Default is true.

OBJECTIVE-C

@property (assign, readwrite, nonatomic) BOOL enableSyncedPanning;

SWIFT

var enableSyncedPanning: Bool { get set }

OBJECTIVE-C

@property (getter=isTouchEnabled, assign, readwrite, nonatomic) BOOL touchEnabled;

-cancelPendingTouches

@abstract Cancels pending touch event timers that may be in progress.

@remark Currently only impacts the timer used to register single taps.

-init

Undocumented

SWIFT

var isTouchEnabled: Bool { get set }

OBJECTIVE-C

- (void)cancelPendingTouches;

SWIFT

func cancelPendingTouches()

-initWithHitTester:

Initialize a touch manager with a hit tester if available

hitTester

The hit tester to be used to correlate a point with a view

The initialized touch manager

OBJECTIVE-C

- (instancetype)init NS_UNAVAILABLE;

OBJECTIVE-C

- (nonnull instancetype)initWithHitTester: (nullable id<SDLFocusableItemHitTester>)hitTester;

PARAMETERS

RETURN VALUE

-syncFrame

Called by SDLStreamingMediaManager in sync with the streaming framerate.

This helps to moderate panning gestures by allowing the UI to be modified in

time with the framerate.

SDLTurn Class Reference

Section Contents

• -initWithNavigationText:turnIcon:• navigationText

OBJECTIVE-C

- (void)syncFrame;

SWIFT

func syncFrame()

• turnIcon

Overview

A struct used in UpdateTurnList for Turn-by-Turn navigation applications

-initWithNavigationText:turnIcon:

Undocumented

navigationText

Individual turn text. Must provide at least text or icon for a given turn

OBJECTIVE-C

- (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon;

SWIFT

init(navigationText: String?, turnIcon icon: SDLImage?)

turnIcon

Individual turn icon. Must provide at least text or icon for a given turn

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *navigationText;

SWIFT

var navigationText: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *turnIcon;

SWIFT

var turnIcon: SDLImage? { get set }

SDLUnsubscribeButton Class Reference

Section Contents

• -initWithButtonName:• buttonName

Overview

Deletes a subscription to button notifications for the specified button. For more

information about button subscriptions, see SDLSubscribeButton

Application can unsubscribe from a button that is currently being pressed (i.e.

has not yet been released), but app will not get button event

HMILevel needs to be FULL, LIMITED or BACKGROUND

@since SmartDeviceLink 1.0

See SDLSubscribeButton

-initWithButtonName:

Undocumented

OBJECTIVE-C

- (instancetype)initWithButtonName:(SDLButtonName)buttonName;

buttonName

A name of the button to unsubscribe from @discussion An Enumeration value,

see SDLButtonName

SWIFT

init(buttonName: SDLButtonName)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

SWIFT

var buttonName: SDLButtonName { get set }

SDLUnsubscribeVehicleData ClassReference

Section Contents

• -

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle• eCallInfo• airbagStatus• emergencyEvent• clusterModeStatus

• myKey

Overview

This function is used to unsubscribe the notifications from the

subscribeVehicleData function

Function Group: Location, VehicleInfo and DrivingChara

HMILevel needs to be FULL, LIMITED or BACKGROUND

@since SmartDeviceLink 2.0

See SDLSubscribeVehicleData SDLGetVehicleData

-

initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clu

Undocumented

OBJECTIVE-C

- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure wiperStatus:(BOOL)wiperStatus;

gps

A boolean value. If true, unsubscribes Gps data

SWIFT

init(accelerationPedalPosition: Bool, airbagStatus: Bool, beltStatus: Bool, bodyInformation: Bool, clusterModeStatus: Bool, deviceStatus: Bool, driverBraking: Bool, eCallInfo: Bool, emergencyEvent: Bool, engineTorque: Bool, externalTemperature: Bool, fuelLevel: Bool, fuelLevelState: Bool, gps: Bool, headLampStatus: Bool, instantFuelConsumption: Bool, myKey: Bool, odometer: Bool, prndl: Bool, rpm: Bool, speed: Bool, steeringWheelAngle: Bool, tirePressure: Bool, wiperStatus: Bool)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

SWIFT

var gps: (NSNumber & SDLBool)? { get set }

speed

A boolean value. If true, unsubscribes speed data

rpm

A boolean value. If true, unsubscribe data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

SWIFT

var speed: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

fuelLevel

A boolean value. If true, unsubscribes FuelLevel data

fuelLevel_State

A boolean value. If true, unsubscribes fuelLevel_State data

SWIFT

var rpm: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

SWIFT

var fuelLevel: (NSNumber & SDLBool)? { get set }

instantFuelConsumption

A boolean value. If true, unsubscribes instantFuelConsumption data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel_State;

SWIFT

var fuelLevel_State: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *instantFuelConsumption;

SWIFT

var instantFuelConsumption: (NSNumber & SDLBool)? { get set }

externalTemperature

A boolean value. If true, unsubscribes externalTemperature data

prndl

A boolean value. If true, unsubscribes Currently selected gear data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature;

SWIFT

var externalTemperature: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

tirePressure

A boolean value. If true, unsubscribes tire pressure status data

odometer

A boolean value. If true, unsubscribes odometer data

SWIFT

var prndl: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *tirePressure;

SWIFT

var tirePressure: (NSNumber & SDLBool)? { get set }

beltStatus

A boolean value. If true, unsubscribes belt Status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

SWIFT

var odometer: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

SWIFT

var beltStatus: (NSNumber & SDLBool)? { get set }

bodyInformation

A boolean value. If true, unsubscribes body Information data

deviceStatus

A boolean value. If true, unsubscribes device Status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *bodyInformation;

SWIFT

var bodyInformation: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *deviceStatus;

driverBraking

A boolean value. If true, unsubscribes driver Braking data

wiperStatus

A boolean value. If true, unsubscribes wiper Status data

SWIFT

var deviceStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *driverBraking;

SWIFT

var driverBraking: (NSNumber & SDLBool)? { get set }

headLampStatus

A boolean value. If true, unsubscribes Head Lamp Status data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *wiperStatus;

SWIFT

var wiperStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *headLampStatus;

SWIFT

var headLampStatus: (NSNumber & SDLBool)? { get set }

engineTorque

A boolean value. If true, unsubscribes Engine Torque data

accPedalPosition

A boolean value. If true, unsubscribes accPedalPosition data

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *engineTorque;

SWIFT

var engineTorque: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *accPedalPosition;

steeringWheelAngle

If true, unsubscribes from steeringWheelAngle

eCallInfo

If true, unsubscribes from eCallInfo

SWIFT

var accPedalPosition: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *steeringWheelAngle;

SWIFT

var steeringWheelAngle: (NSNumber & SDLBool)? { get set }

airbagStatus

If true, unsubscribes from airbagStatus

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *eCallInfo;

SWIFT

var eCallInfo: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *airbagStatus;

SWIFT

var airbagStatus: (NSNumber & SDLBool)? { get set }

emergencyEvent

If true, unsubscribes from emergencyEvent

clusterModeStatus

If true, unsubscribes from clusterModeStatus

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *emergencyEvent;

SWIFT

var emergencyEvent: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *clusterModeStatus;

myKey

If true, unsubscribes from myKey

SWIFT

var clusterModeStatus: (NSNumber & SDLBool)? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *myKey;

SWIFT

var myKey: (NSNumber & SDLBool)? { get set }

SDLUnsubscribeVehicleDataResponseClass Reference

Section Contents

• gps• speed• rpm• fuelLevel• fuelLevel_State• instantFuelConsumption• externalTemperature• prndl• tirePressure• odometer• beltStatus• bodyInformation• deviceStatus• driverBraking• wiperStatus• headLampStatus• engineTorque• accPedalPosition• steeringWheelAngle• eCallInfo• airbagStatus• emergencyEvent• clusterModes• myKey

Overview

Response to UnsubscribeVehicleData

since SmartDeviceLink 2.0

gps

The result of requesting to subscribe to the GPSData.

Optional

speed

The result of requesting to subscribe to the vehicle speed in kilometers per

hour.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *gps;

SWIFT

var gps: SDLVehicleDataResult? { get set }

rpm

The result of requesting to subscribe to the number of revolutions per minute of

the engine.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *speed;

SWIFT

var speed: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *rpm;

fuelLevel

The result of requesting to subscribe to the fuel level in the tank (percentage)

Optional

fuelLevel_State

The result of requesting to subscribe to the fuel level state.

Optional

SWIFT

var rpm: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel;

SWIFT

var fuelLevel: SDLVehicleDataResult? { get set }

instantFuelConsumption

The result of requesting to subscribe to the instantaneous fuel consumption in

microlitres.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State;

SWIFT

var fuelLevel_State: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption;

externalTemperature

The result of requesting to subscribe to the external temperature in degrees

celsius.

Optional

prndl

The result of requesting to subscribe to the PRNDL status.

SWIFT

var instantFuelConsumption: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature;

SWIFT

var externalTemperature: SDLVehicleDataResult? { get set }

Optional

tirePressure

The result of requesting to subscribe to the tireStatus.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *prndl;

SWIFT

var prndl: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure;

odometer

The result of requesting to subscribe to the odometer in km.

Optional

beltStatus

The result of requesting to subscribe to the status of the seat belts.

Optional

SWIFT

var tirePressure: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *odometer;

SWIFT

var odometer: SDLVehicleDataResult? { get set }

bodyInformation

The result of requesting to subscribe to the body information including power

modes.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus;

SWIFT

var beltStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation;

deviceStatus

The result of requesting to subscribe to the device status including signal and

battery strength.

Optional

driverBraking

The result of requesting to subscribe to the status of the brake pedal.

SWIFT

var bodyInformation: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus;

SWIFT

var deviceStatus: SDLVehicleDataResult? { get set }

Optional

wiperStatus

The result of requesting to subscribe to the status of the wipers.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking;

SWIFT

var driverBraking: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus;

headLampStatus

The result of requesting to subscribe to the status of the head lamps.

Optional

engineTorque

The result of requesting to subscribe to the torque value for engine (in Nm) on

non-diesel variants.

SWIFT

var wiperStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus;

SWIFT

var headLampStatus: SDLVehicleDataResult? { get set }

Optional

accPedalPosition

The result of requesting to subscribe to the accelerator pedal position

(percentage depressed)

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque;

SWIFT

var engineTorque: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition;

steeringWheelAngle

The result of requesting to subscribe to the current angle of the steering wheel

(in deg)

Optional

eCallInfo

The result of requesting to subscribe to the emergency call info

SWIFT

var accPedalPosition: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle;

SWIFT

var steeringWheelAngle: SDLVehicleDataResult? { get set }

Optional

airbagStatus

The result of requesting to subscribe to the airbag status

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo;

SWIFT

var eCallInfo: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus;

emergencyEvent

The result of requesting to subscribe to the emergency event

Optional

clusterModes

The result of requesting to subscribe to the cluster modes

Optional

SWIFT

var airbagStatus: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent;

SWIFT

var emergencyEvent: SDLVehicleDataResult? { get set }

myKey

The result of requesting to subscribe to the myKey status

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes;

SWIFT

var clusterModes: SDLVehicleDataResult? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *myKey;

SDLUpdateTurnList Class Reference

Section Contents

• -initWithTurnList:softButtons:• turnList• softButtons

Overview

Updates the list of next maneuvers, which can be requested by the user

pressing the softbutton

• “Turns” on the Navigation base screen. Three softbuttons are predefined

by the system: Up, Down, Close. *• @since SmartDeviceLink 2.0

-initWithTurnList:softButtons:

Undocumented

SWIFT

var myKey: SDLVehicleDataResult? { get set }

turnList

Optional, SDLTurn, 1 - 100 entries

OBJECTIVE-C

- (instancetype)initWithTurnList:(nullable NSArray<SDLTurn *> *)turnList softButtons:(nullable NSArray<SDLSoftButton *> *)softButtons;

SWIFT

init(turnList: [SDLTurn]?, softButtons: [SDLSoftButton]?)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLTurn *> *turnList;

SWIFT

var turnList: [SDLTurn]? { get set }

softButtons

Required, SDLSoftButton, 0 - 1 Entries

SDLVRHelpItem Class Reference

Section Contents

• -initWithText:image:• -initWithText:image:position:• text• image• position

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLSoftButton *> *softButtons;

SWIFT

var softButtons: [SDLSoftButton]? { get set }

Overview

A help item for voice commands, used locally in interaction lists and globally

-initWithText:image:

Undocumented

-initWithText:image:position:

Undocumented

OBJECTIVE-C

- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image;

SWIFT

init(text: String, image: SDLImage?)

text

Text to display for VR Help item

Required

OBJECTIVE-C

- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position;

SWIFT

init(text: String, image: SDLImage?, position: UInt8)

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSString *_Nonnull text;

image

Image for VR Help item

Optional

position

Position to display item in VR Help list

Required

SWIFT

var text: String { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImage *image;

SWIFT

var image: SDLImage? { get set }

SDLVehicleDataResult Class Reference

Section Contents

• dataType• resultCode

Overview

Individual published data request result

dataType

Defined published data element type

OBJECTIVE-C

@property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull position;

SWIFT

var position: NSNumber & SDLInt { get set }

resultCode

Published data result code

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataType _Nonnull dataType;

SWIFT

var dataType: SDLVehicleDataType { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVehicleDataResultCode _Nonnull resultCode;

SWIFT

var resultCode: SDLVehicleDataResultCode { get set }

SDLVehicleType Class Reference

Section Contents

• make• model• modelYear• trim

Overview

Describes the type of vehicle the mobile phone is connected with.

@since SDL 2.0

make

The make of the vehicle

For example, “Ford”, “Lincoln”, etc.

Optional, Max String length 500 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *make;

model

The model of the vehicle

For example, “Fiesta”, “Focus”, etc.

Optional, Max String length 500 chars

modelYear

The model year of the vehicle

SWIFT

var make: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *model;

SWIFT

var model: String? { get set }

For example, “2013”

Optional, Max String length 500 chars

trim

The trim of the vehicle

For example, “SE”, “SEL”

Optional, Max String length 500 chars

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *modelYear;

SWIFT

var modelYear: String? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSString *trim;

SDLVideoStreamingCapability ClassReference

Section Contents

• -

initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:• preferredResolution• maxBitrate• supportedFormats• hapticSpatialDataSupported

Overview

Contains information about this system’s video streaming capabilities

-

initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupporte

Undocumented

SWIFT

var trim: String? { get set }

preferredResolution

The preferred resolution of a video stream for decoding and rendering on HMI

Optional

OBJECTIVE-C

- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported;

SWIFT

init(preferredResolution: SDLImageResolution?, maxBitrate: Int32, supportedFormats: [SDLVideoStreamingFormat]?, hapticDataSupported: Bool)

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) SDLImageResolution *preferredResolution;

maxBitrate

The maximum bitrate of video stream that is supported, in kbps, optional

Optional, minvalue= 0, maxvalue= 2147483647

supportedFormats

Detailed information on each format supported by this system, in its preferred

order

SWIFT

var preferredResolution: SDLImageResolution? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *maxBitrate;

SWIFT

var maxBitrate: (NSNumber & SDLInt)? { get set }

Optional

hapticSpatialDataSupported

True if the system can utilize the haptic spatial data from the source being

streamed.

Optional

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSArray<SDLVideoStreamingFormat *> *supportedFormats;

SWIFT

var supportedFormats: [SDLVideoStreamingFormat]? { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *hapticSpatialDataSupported;

SDLVideoStreamingFormat ClassReference

Section Contents

• protocol• codec• -initWithCodec:protocol:

Overview

An available format for video streaming in projection applications

protocol

Protocol type, see VideoStreamingProtocol

Required

SWIFT

var hapticSpatialDataSupported: (NSNumber & SDLBool)? { get set }

codec

Codec type, see VideoStreamingCodec

Required

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVideoStreamingProtocol _Nonnull protocol;

SWIFT

var `protocol`: SDLVideoStreamingProtocol { get set }

OBJECTIVE-C

@property (readwrite, strong, nonatomic) SDLVideoStreamingCodec _Nonnull codec;

SDLVoiceCommand Class Reference

Section Contents

• voiceCommands• handler• -initWithVoiceCommands:handler:

Overview

Undocumented

voiceCommands

The strings the user can say to activate this voice command

OBJECTIVE-C

@property (readonly, copy, nonatomic) NSArray<NSString *> *_Nonnull voiceCommands;

SWIFT

var voiceCommands: [String] { get }

handler

The handler that will be called when the command is activated

-initWithVoiceCommands:handler:

Undocumented

OBJECTIVE-C

@property (readonly, copy, nonatomic, nullable) SDLVoiceCommandSelectionHandler handler;

SWIFT

var handler: SDLVoiceCommandSelectionHandler? { get }

OBJECTIVE-C

- (instancetype)initWithVoiceCommands:(NSArray<NSString *> *)voiceCommands handler:(SDLVoiceCommandSelectionHandler)handler;

SDLArtworkImageFormat EnumerationReference

Section Contents

• SDLArtworkImageFormatPNG• SDLArtworkImageFormatJPG

Overview

Undocumented

SDLArtworkImageFormatPNG

Undocumented

SWIFT

init(voiceCommands: [String], handler: @escaping SDLVoiceCommandSelectionHandler)

OBJECTIVE-C

SDLArtworkImageFormatPNG

SDLArtworkImageFormatJPG

Undocumented

SWIFT

case PNG = 0

OBJECTIVE-C

SDLArtworkImageFormatJPG

SWIFT

case JPG = 1

SDLAudioStreamManagerErrorEnumeration Reference

Section Contents

• SDLAudioStreamManagerErrorNotConnected• SDLAudioStreamManagerErrorNoQueuedAudio

Overview

Undocumented

SDLAudioStreamManagerErrorNotConnected

Undocumented

OBJECTIVE-C

SDLAudioStreamManagerErrorNotConnected = -1

SWIFT

case notConnected = -1

SDLAudioStreamManagerErrorNoQueuedAudio

Undocumented

SDLCarWindowRenderingTypeEnumeration Reference

Section Contents

• SDLCarWindowRenderingTypeLayer• SDLCarWindowRenderingTypeViewAfterScreenUpdates

OBJECTIVE-C

SDLAudioStreamManagerErrorNoQueuedAudio = -2

SWIFT

case noQueuedAudio = -2

• SDLCarWindowRenderingTypeViewBeforeScreenUpdates

Overview

The type of rendering that CarWindow will perform. Depending on your app,

you may need to try different ones for best performance

• SDLCarWindowRenderingTypeLayer: Instead of rendering your

UIViewController’s view, this will render the layer using renderInContext• SDLCarWindowRenderingTypeViewAfterScreenUpdates: Renders your

UIViewController’s view using drawViewHierarchyInRect:bounds

afterScreenUpdates:YES• SDLCarWindowRenderingTypeViewBeforeScreenUpdates: Renders your

UIViewController’s view using drawViewHierarchyInRect:bounds

afterScreenUpdates:NO

SDLCarWindowRenderingTypeLayer

Undocumented

OBJECTIVE-C

SDLCarWindowRenderingTypeLayer

SWIFT

case layer = 0

SDLCarWindowRenderingTypeViewAfterScreenUpdates

Undocumented

SDLCarWindowRenderingTypeViewBeforeScreenUpdates

Undocumented

OBJECTIVE-C

SDLCarWindowRenderingTypeViewAfterScreenUpdates

SWIFT

case viewAfterScreenUpdates = 1

OBJECTIVE-C

SDLCarWindowRenderingTypeViewBeforeScreenUpdates

SDLFileManagerError EnumerationReference

Section Contents

• SDLFileManagerErrorCannotOverwrite• SDLFileManagerErrorNoKnownFile• SDLFileManagerErrorUnableToStart• SDLFileManagerErrorUnableToUpload• SDLFileManagerErrorFileDoesNotExist• SDLFileManagerUploadCanceled• SDLFileManagerMultipleFileUploadTasksFailed• SDLFileManagerMultipleFileDeleteTasksFailed• SDLFileManagerErrorFileDataMissing

Overview

Errors associated with the SDLFileManager class.

SDLFileManagerErrorCannotOverwrite

A file attempted to send, but a file with that name already exists on the remote

head unit, and the file was not configured to overwrite.

SWIFT

case viewBeforeScreenUpdates = 2

SDLFileManagerErrorNoKnownFile

A file was attempted to be accessed but it does not exist.

OBJECTIVE-C

SDLFileManagerErrorCannotOverwrite = -1

SWIFT

case errorCannotOverwrite = -1

OBJECTIVE-C

SDLFileManagerErrorNoKnownFile = -2

SWIFT

case errorNoKnownFile = -2

SDLFileManagerErrorUnableToStart

The file manager attempted to start but encountered an error.

SDLFileManagerErrorUnableToUpload

The file manager was unable to send this file.

OBJECTIVE-C

SDLFileManagerErrorUnableToStart = -3

SWIFT

case errorUnableToStart = -3

OBJECTIVE-C

SDLFileManagerErrorUnableToUpload = -4

SDLFileManagerErrorFileDoesNotExist

The file manager could not find the local file.

SDLFileManagerUploadCanceled

The file manager could not find the local file.

SWIFT

case errorUnableToUpload = -4

OBJECTIVE-C

SDLFileManagerErrorFileDoesNotExist = -5

SWIFT

case errorFileDoesNotExist = -5

SDLFileManagerMultipleFileUploadTasksFailed

The file manager could not find the local file.

OBJECTIVE-C

SDLFileManagerUploadCanceled = -6

SWIFT

case uploadCanceled = -6

OBJECTIVE-C

SDLFileManagerMultipleFileUploadTasksFailed = -7

SWIFT

case multipleFileUploadTasksFailed = -7

SDLFileManagerMultipleFileDeleteTasksFailed

The file manager could not find the local file.

SDLFileManagerErrorFileDataMissing

The file manager could not find the local file.

OBJECTIVE-C

SDLFileManagerMultipleFileDeleteTasksFailed = -8

SWIFT

case multipleFileDeleteTasksFailed = -8

OBJECTIVE-C

SDLFileManagerErrorFileDataMissing = -9

SDLLogBytesDirection EnumerationReference

Section Contents

• SDLLogBytesDirectionTransmit• SDLLogBytesDirectionReceive

Overview

Undocumented

SDLLogBytesDirectionTransmit

Undocumented

SWIFT

case errorFileDataMissing = -9

OBJECTIVE-C

SDLLogBytesDirectionTransmit

SDLLogBytesDirectionReceive

Undocumented

SWIFT

case transmit = 0

OBJECTIVE-C

SDLLogBytesDirectionReceive

SWIFT

case receive = 1

SDLLogFlag Enumeration Reference

Section Contents

• SDLLogFlagError• SDLLogFlagWarning• SDLLogFlagDebug• SDLLogFlagVerbose

Overview

Flags used for SDLLogLevel to provide correct enum values. This is purely for

internal use.

• SDLLogFlagVerbose: Verbose level logging• SDLLogFlagDebug: Debug level logging• SDLLogFlagWarning: Warning level logging• SDLLogFlagError: Error level logging.

SDLLogFlagError

Undocumented

OBJECTIVE-C

SDLLogFlagError = 1 << 0

SDLLogFlagWarning

Undocumented

SDLLogFlagDebug

Undocumented

SWIFT

static var error: SDLLogFlag { get }

OBJECTIVE-C

SDLLogFlagWarning = 1 << 1

SWIFT

static var warning: SDLLogFlag { get }

SDLLogFlagVerbose

Undocumented

OBJECTIVE-C

SDLLogFlagDebug = 1 << 2

SWIFT

static var debug: SDLLogFlag { get }

OBJECTIVE-C

SDLLogFlagVerbose = 1 << 3

SWIFT

static var verbose: SDLLogFlag { get }

SDLLogFormatType EnumerationReference

Section Contents

• SDLLogFormatTypeSimple• SDLLogFormatTypeDefault• SDLLogFormatTypeDetailed

Overview

The output format of logs; how they will appear when printed out into a string.

• SDLLogFormatTypeSimple: A bare-bones log format: 01F53909:52:07:324

(SDL)Protocol – a random test i guess• SDLLogFormatTypeDefault: A middle detail default log format:

01F53909:52:07:324 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log

message• SDLLogFormatTypeDetailed: A very detailed log format: 01F

53909:52:07:324

DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader

parse:]:74 – Some log message

SDLLogFormatTypeSimple

Undocumented

OBJECTIVE-C

SDLLogFormatTypeSimple

SDLLogFormatTypeDefault

Undocumented

SDLLogFormatTypeDetailed

Undocumented

SWIFT

case simple = 0

OBJECTIVE-C

SDLLogFormatTypeDefault

SWIFT

case `default` = 1

SDLLogLevel Enumeration Reference

Section Contents

• SDLLogLevelDefault• SDLLogLevelOff• SDLLogLevelError• SDLLogLevelWarning• SDLLogLevelDebug

OBJECTIVE-C

SDLLogFormatTypeDetailed

SWIFT

case detailed = 2

• SDLLogLevelVerbose

Overview

An enum describing a level of logging.

• SDLLogLevelDefault: This is used to describe that a “specific” logging will

instead use the global log level, for example, a module may use the global

log level instead of its own by specifying this level.• SDLLogLevelOff: This is used to describe a level that involves absolutely

no logs being output.• SDLLogLevelError: Only error level logs will be output.• SDLLogLevelWarning: Both error and warning level logs will be output.• SDLLogLevelDebug: Error, warning, and debug level logs will be output.

This level will never be output in RELEASE environments.• SDLLogLevelVerbose: All level logs will be output. This level will never be

output in RELEASE environments.

SDLLogLevelDefault

Undocumented

OBJECTIVE-C

SDLLogLevelDefault = -1

SWIFT

case `default` = -1

SDLLogLevelOff

Undocumented

SDLLogLevelError

Undocumented

OBJECTIVE-C

SDLLogLevelOff = 0

SWIFT

case off = 0

OBJECTIVE-C

SDLLogLevelError = SDLLogFlagError

SDLLogLevelWarning

Undocumented

SDLLogLevelDebug

Undocumented

SWIFT

case error = 1

OBJECTIVE-C

SDLLogLevelWarning = (SDLLogFlagError | SDLLogFlagWarning)

SWIFT

case warning = 3

SDLLogLevelVerbose

Undocumented

OBJECTIVE-C

SDLLogLevelDebug = (SDLLogFlagWarning | SDLLogFlagDebug)

SWIFT

case debug = 6

OBJECTIVE-C

SDLLogLevelVerbose = (SDLLogFlagDebug | SDLLogFlagVerbose)

SWIFT

case verbose = 12

SDLManagerError EnumerationReference

Section Contents

• SDLManagerErrorRPCRequestFailed• SDLManagerErrorNotConnected• SDLManagerErrorNotReady• SDLManagerErrorUnknownRemoteError• SDLManagerErrorManagersFailedToStart• SDLManagerErrorRegistrationFailed• SDLManagerErrorRegistrationSuccessWithWarning• SDLManagerErrorCancelled

Overview

Errors associated with the SDLManager class.

SDLManagerErrorRPCRequestFailed

An RPC request failed to send.

OBJECTIVE-C

SDLManagerErrorRPCRequestFailed = -1

SDLManagerErrorNotConnected

Some action was attempted that requires a connection to the remote head unit.

SDLManagerErrorNotReady

Some action was attempted before the ready state was reached.

SWIFT

case rpcRequestFailed = -1

OBJECTIVE-C

SDLManagerErrorNotConnected = -2

SWIFT

case notConnected = -2

SDLManagerErrorUnknownRemoteError

The remote system encountered an unknown error.

OBJECTIVE-C

SDLManagerErrorNotReady = -3

SWIFT

case notReady = -3

OBJECTIVE-C

SDLManagerErrorUnknownRemoteError = -4

SWIFT

case unknownRemoteError = -4

SDLManagerErrorManagersFailedToStart

One or more of the sub-managers failed to start.

SDLManagerErrorRegistrationFailed

Registering with the remote system failed.

OBJECTIVE-C

SDLManagerErrorManagersFailedToStart = -5

SWIFT

case managersFailedToStart = -5

OBJECTIVE-C

SDLManagerErrorRegistrationFailed = -6

SDLManagerErrorRegistrationSuccessWithWarning

Registering with the remote system was successful, but had a warning.

SDLManagerErrorCancelled

Request operations were cancelled before they could be sent

SWIFT

case registrationFailed = -6

OBJECTIVE-C

SDLManagerErrorRegistrationSuccessWithWarning = -7

SWIFT

case registrationSuccessWithWarning = -7

SDLMenuManagerError EnumerationReference

Section Contents

• SDLMenuManagerErrorRPCsFailed

Overview

Errors associated with the ScreenManager class

• SDLMenuManagerErrorRPCsFailed: Sending menu-related RPCs returned

an error from the remote system

OBJECTIVE-C

SDLManagerErrorCancelled = -8

SWIFT

case cancelled = -8

SDLMenuManagerErrorRPCsFailed

Undocumented

SDLPermissionGroupStatusEnumeration Reference

Section Contents

• SDLPermissionGroupStatusAllowed• SDLPermissionGroupStatusDisallowed• SDLPermissionGroupStatusMixed

OBJECTIVE-C

SDLMenuManagerErrorRPCsFailed = -1

SWIFT

case rpcsFailed = -1

• SDLPermissionGroupStatusUnknown

Overview

The status of the group of RPCs permissions.

SDLPermissionGroupStatusAllowed

Every RPC in the group is currently allowed.

SDLPermissionGroupStatusDisallowed

Every RPC in the group is currently disallowed.

OBJECTIVE-C

SDLPermissionGroupStatusAllowed

SWIFT

case allowed = 0

OBJECTIVE-C

SDLPermissionGroupStatusDisallowed

SDLPermissionGroupStatusMixed

Some RPCs in the group are allowed and some disallowed.

SDLPermissionGroupStatusUnknown

The current status of the group is unknown.

SWIFT

case disallowed = 1

OBJECTIVE-C

SDLPermissionGroupStatusMixed

SWIFT

case mixed = 2

SDLPermissionGroupType EnumerationReference

Section Contents

• SDLPermissionGroupTypeAllAllowed• SDLPermissionGroupTypeAny

Overview

A permission group type which will be used to tell the system what type of

changes you want to be notified about for the group.

OBJECTIVE-C

SDLPermissionGroupStatusUnknown

SWIFT

case unknown = 3

SDLPermissionGroupTypeAllAllowed

Be notified when all of the RPC in the group are allowed, or, when they all stop

being allowed in some sense, that is, when they were all allowed, and now they

are not.

SDLPermissionGroupTypeAny

Be notified when any change in availability occurs among the group.

OBJECTIVE-C

SDLPermissionGroupTypeAllAllowed

SWIFT

case allAllowed = 0

OBJECTIVE-C

SDLPermissionGroupTypeAny

SDLRPCMessageType EnumerationReference

Section Contents

• SDLRPCMessageTypeRequest• SDLRPCMessageTypeResponse• SDLRPCMessageTypeNotification

Overview

The type of RPC message

• SDLRPCMessageTypeRequest: A request from the app to the IVI system• SDLRPCMessageTypeResponse: A response from the IVI system to the app• SDLRPCMessageTypeNotification: A notification from the IVI system to the

app

SDLRPCMessageTypeRequest

Undocumented

SWIFT

case any = 1

SDLRPCMessageTypeResponse

Undocumented

OBJECTIVE-C

SDLRPCMessageTypeRequest = 0

SWIFT

case request = 0

OBJECTIVE-C

SDLRPCMessageTypeResponse

SWIFT

case response = 1

SDLRPCMessageTypeNotification

Undocumented

SDLSoftButtonManagerErrorEnumeration Reference

Section Contents

• SDLSoftButtonManagerErrorPendingUpdateSuperseded

OBJECTIVE-C

SDLRPCMessageTypeNotification

SWIFT

case notification = 2

Overview

Errors associated with the ScreenManager class

• SDLSoftButtonManagerErrorPendingUpdateSuperseded: A pending update

was superseded by a newer requested update. The old update will not be

sent

SDLSoftButtonManagerErrorPendingUpdateSuperseded

Undocumented

OBJECTIVE-C

SDLSoftButtonManagerErrorPendingUpdateSuperseded = -1

SWIFT

case pendingUpdateSuperseded = -1

SDLStreamingEncryptionFlagEnumeration Reference

Section Contents

• SDLStreamingEncryptionFlagNone• SDLStreamingEncryptionFlagAuthenticateOnly• SDLStreamingEncryptionFlagAuthenticateAndEncrypt

Overview

A flag determining how video and audio streaming should be encrypted

• SDLStreamingEncryptionFlagNone: It should not be encrypted at all• SDLStreamingEncryptionFlagAuthenticateOnly: It should use SSL/TLS only

to authenticate• SDLStreamingEncryptionFlagAuthenticateAndEncrypt: All data on these

services should be encrypted using SSL/TLS

SDLStreamingEncryptionFlagNone

Undocumented

OBJECTIVE-C

SDLStreamingEncryptionFlagNone

SDLStreamingEncryptionFlagAuthenticateOnly

Undocumented

SDLStreamingEncryptionFlagAuthenticateAndEncrypt

Undocumented

SWIFT

case none = 0

OBJECTIVE-C

SDLStreamingEncryptionFlagAuthenticateOnly

SWIFT

case authenticateOnly = 1

SDLTextAndGraphicManagerErrorEnumeration Reference

Section Contents

• SDLTextAndGraphicManagerErrorPendingUpdateSuperseded

Overview

Errors associated with the ScreenManager class

• SDLTextAndGraphicManagerErrorPendingUpdateSuperseded: A pending

update was superseded by a newer requested update. The old update will

not be sent

OBJECTIVE-C

SDLStreamingEncryptionFlagAuthenticateAndEncrypt

SWIFT

case authenticateAndEncrypt = 2

SDLTextAndGraphicManagerErrorPendingUpdateSuperseded

Undocumented

SDLAudioStreamManagerDelegateProtocol Reference

Section Contents

• -audioStreamManager:fileDidFinishPlaying:successfully:

OBJECTIVE-C

SDLTextAndGraphicManagerErrorPendingUpdateSuperseded = -1

SWIFT

case pendingUpdateSuperseded = -1

• -audioStreamManager:errorDidOccurForFile:error:

Overview

Undocumented

-

audioStreamManager:fileDidFinishPlaying:successfully:

Called when a file from the SDLAudioStreamManager finishes playing

audioManager

OBJECTIVE-C

- (void)audioStreamManager:(nonnull SDLAudioStreamManager *)audioManager fileDidFinishPlaying:(nonnull NSURL *)fileURL successfully:(BOOL)successfully;

SWIFT

func audioStreamManager(_ audioManager: SDLAudioStreamManager, fileDidFinishPlaying fileURL: URL, successfully: Bool)

PARAMETERS

A reference to the audio stream manager

fileURL

The URL that finished playing

successfully

Whether or not it was played successfully

-audioStreamManager:errorDidOccurForFile:error:

Called when a file from the SDLAudioStreamManager could not play

OBJECTIVE-C

- (void)audioStreamManager:(nonnull SDLAudioStreamManager *)audioManager errorDidOccurForFile:(nonnull NSURL *)fileURL error:(nonnull NSError *)error;

SWIFT

func audioStreamManager(_ audioManager: SDLAudioStreamManager, errorDidOccurForFile fileURL: URL, error: Error)

audioManager

A reference to the audio stream manager

fileURL

The URL that failed

error

The error that occurred

SDLLogTarget Protocol Reference

Section Contents

• +logger• -setupLogger• -logWithLog:formattedLog:• -teardownLogger

Overview

A protocol describing a place logs from SDLLogManager are logged to

PARAMETERS

+logger

A simple convenience initializer to create the object. This should not start up

the logger.

An instance of the logger.

-setupLogger

A call to setup the logger in whatever manner it needs to do so.

OBJECTIVE-C

+ (nonnull id<SDLLogTarget>)logger;

SWIFT

static func logger() -> SDLLogTarget

RETURN VALUE

Whether or not the logger set up correctly.

-logWithLog:formattedLog:

Log a particular log using the model and the formatted log message to the

target.

OBJECTIVE-C

- (BOOL)setupLogger;

SWIFT

func setupLogger() -> Bool

RETURN VALUE

OBJECTIVE-C

- (void)logWithLog:(nonnull SDLLogModel *)log formattedLog:(nonnull NSString *)stringLog;

log

The log model, if you can log additional data, such as the log level, use

this

stringLog

The formatted message

-teardownLogger

The log target should be torn down. e.g. file handles should be closed

SWIFT

func log(withLog log: SDLLogModel, formattedLog stringLog: String)

PARAMETERS

OBJECTIVE-C

- (void)teardownLogger;

SDLManagerDelegate ProtocolReference

Section Contents

• -managerDidDisconnect• -hmiLevel:didChangeToLevel:• -audioStreamingState:didChangeToState:• -systemContext:didChangeToContext:• -managerShouldUpdateLifecycleToLanguage:

Overview

Undocumented

-managerDidDisconnect

Called upon a disconnection from the remote system.

SWIFT

func teardownLogger()

-hmiLevel:didChangeToLevel:

Called when the HMI level state of this application changes on the remote

system. This is equivalent to the application’s state changes in iOS such as

foreground, background, or closed.

OBJECTIVE-C

- (void)managerDidDisconnect;

SWIFT

func managerDidDisconnect()

OBJECTIVE-C

- (void)hmiLevel:(nonnull SDLHMILevel)oldLevel didChangeToLevel:(nonnull SDLHMILevel)newLevel;

oldLevel

The previous level which has now been left.

newLevel

The current level.

-audioStreamingState:didChangeToState:

Called when the audio streaming state of this application changes on the

remote system. This refers to when streaming audio is audible to the user.

SWIFT

func hmiLevel(_ oldLevel: SDLHMILevel, didChangeToLevel newLevel: SDLHMILevel)

PARAMETERS

OBJECTIVE-C

- (void)audioStreamingState:(nullable SDLAudioStreamingState)oldState didChangeToState:(nonnull SDLAudioStreamingState)newState;

oldState

The previous state which has now been left.

newState

The current state.

-systemContext:didChangeToContext:

Called when the system context of this application changes on the remote

system. This refers to whether or not a user-initiated interaction is in progress,

and if so, what it is.

SWIFT

optional func audioStreamingState(_ oldState: SDLAudioStreamingState?, didChangeToState newState: SDLAudioStreamingState)

PARAMETERS

OBJECTIVE-C

- (void)systemContext:(nullable SDLSystemContext)oldContext didChangeToContext:(nonnull SDLSystemContext)newContext;

oldContext

The previous context which has now been left.

newContext

The current context.

-managerShouldUpdateLifecycleToLanguage:

Called when the lifecycle manager detected a language mismatch. In case of a

language mismatch the manager should change the apps registration by

updating the lifecycle configuration to the specified language. If the app can

support the specified language it should return an Object of

SWIFT

optional func systemContext(_ oldContext: SDLSystemContext?, didChangeToContext newContext: SDLSystemContext)

PARAMETERS

SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that

the language is not supported.

language

The language of the connected head unit the manager is trying to

update the configuration.

OBJECTIVE-C

- (nullable SDLLifecycleConfigurationUpdate *)managerShouldUpdateLifecycleToLanguage:(nonnull SDLLanguage)language;

SWIFT

optional func managerShouldUpdateLifecycle(toLanguage language: SDLLanguage) -> SDLLifecycleConfigurationUpdate?

PARAMETERS

An object of SDLLifecycleConfigurationUpdate if the head unit language is

supported, otherwise nil to indicate that the language is not supported.

SDLSecurityType Protocol Reference

Section Contents

• appId• -initializeWithAppId:completionHandler:• -stop• -runHandshakeWithClientData:error:• -encryptData:withError:• -decryptData:withError:• +availableMakes

Overview

A protocol used by SDL Security libraries.

WarningUsed internally

appId

The app id of the app

RETURN VALUE

-initializeWithAppId:completionHandler:

Initialize the SDL security library with the app’s id and a completion handler

OBJECTIVE-C

@property (readwrite, copy, nonatomic) NSString *_Nonnull appId;

SWIFT

var appId: String { get set }

OBJECTIVE-C

- (void)initializeWithAppId:(nonnull NSString *)appId completionHandler: (nonnull void (^)(NSError *_Nullable))completionHandler;

appId

The app’s id

completionHandler

A handler for when the security library is initialized

-stop

Stop the security library

SWIFT

func initialize(withAppId appId: String, completionHandler: @escaping (Error?) -> Void)

PARAMETERS

OBJECTIVE-C

- (void)stop;

-runHandshakeWithClientData:error:

Run the SSL/TLS handshake

data

SWIFT

func stop()

OBJECTIVE-C

- (nullable NSData *)runHandshakeWithClientData:(nonnull NSData *)data error:(NSError *_Nullable *_Nullable) error;

SWIFT

func runHandshake(withClientData data: Data) throws -> Data

PARAMETERS

The client data for the handshake

error

A returnable error

The server handshake data

-encryptData:withError:

Encrypt data using SSL/TLS

RETURN VALUE

OBJECTIVE-C

- (nullable NSData *)encryptData:(nonnull NSData *)data withError:(NSError *_Nullable *_Nullable)error;

SWIFT

func encryptData(_ data: Data) throws -> Data

data

The data to encrypt

error

A returnable error

The encrypted data

-decryptData:withError:

Decrypt data using SSL/TLS

PARAMETERS

RETURN VALUE

OBJECTIVE-C

- (nullable NSData *)decryptData:(nonnull NSData *)data withError:(NSError *_Nullable *_Nullable)error;

data

The data to decrypt

error

A returnable error

The decrypted data

+availableMakes

The vehicle makes this security library covers

SWIFT

func decryptData(_ data: Data) throws -> Data

PARAMETERS

RETURN VALUE

The makes

SDLStreamingAudioManagerTypeProtocol Reference

Section Contents

• audioConnected

OBJECTIVE-C

+ (nonnull NSSet<NSString *> *)availableMakes;

SWIFT

static func availableMakes() -> Set<String>

RETURN VALUE

• -sendAudioData:

Overview

Undocumented

audioConnected

Whether or not the audio byte stream is currently connected

-sendAudioData:

Send audio data bytes over the audio byte stream

OBJECTIVE-C

@property (readonly, getter=isAudioConnected, assign, nonatomic) BOOL audioConnected;

SWIFT

var isAudioConnected: Bool { get }

audioData

The PCM data bytes

Whether or not it sent successfully

OBJECTIVE-C

- (BOOL)sendAudioData:(NSData *)audioData;

SWIFT

func sendAudioData(_ audioData: Data!) -> Bool

PARAMETERS

RETURN VALUE

SDLStreamingMediaManagerDataSourceProtocol Reference

Section Contents

• -preferredVideoFormatOrderFromHeadUnitPreferredOrder:• -resolutionFromHeadUnitPreferredResolution:

Overview

Undocumented

-

preferredVideoFormatOrderFromHeadUnitPreferredOrder:

Implement to return a different preferred order of attempted format usage than

the head unit’s preferred order. In nearly all cases, it’s best to simply return the

head unit’s preferred order, or not implement this method (which does the

same thing).

Warning

If you return a format that is not supported by the StreamingMediaManager,

that format will be skipped.

Note

If the head unit does not support the GetSystemCapabilities RPC, this method

will not be called and H264 RAW will be used.

headUnitPreferredOrder

The head unit’s preferred order of format usage. The first item is the

one that will be used unless this proxy does not support it, then the

next item, etc.

OBJECTIVE-C

- (nonnull NSArray<SDLVideoStreamingFormat *> *)preferredVideoFormatOrderFromHeadUnitPreferredOrder: (nonnull NSArray<SDLVideoStreamingFormat *> *)headUnitPreferredOrder;

SWIFT

func preferredVideoFormatOrder(fromHeadUnitPreferredOrder headUnitPreferredOrder: [SDLVideoStreamingFormat]) -> [SDLVideoStreamingFormat]

PARAMETERS

Your preferred order of format usage.

-resolutionFromHeadUnitPreferredResolution:

Implement to return a different resolution to use for video streaming than the

head unit’s requested resolution. If you return a resolution that the head unit

does not like, the manager will fail to start up. In nearly all cases, it’s best to

simply return the head unit’s preferred order, or not implement this method

(which does the same thing), and adapt your UI to the head unit’s preferred

resolution instead.

RETURN VALUE

OBJECTIVE-C

- (nonnull NSArray<SDLImageResolution *> *)resolutionFromHeadUnitPreferredResolution: (nonnull SDLImageResolution *)headUnitPreferredResolution;

SWIFT

func resolution(fromHeadUnitPreferredResolution headUnitPreferredResolution: SDLImageResolution) -> [SDLImageResolution]

headUnitPreferredResolution

The resolution the head unit requested to use.

Your preferred order of image resolution usage. This system will not attempt

more than 3 resolutions. It is strongly recommended that at least one resolution

is the head unit’s preferred resolution.

SDLTouchManagerDelegate ProtocolReference

Section Contents

• -touchManager:didReceiveSingleTapForView:atPoint:• -touchManager:didReceiveDoubleTapForView:atPoint:• -touchManager:panningDidStartInView:atPoint:• -touchManager:didReceivePanningFromPoint:toPoint:• -touchManager:panningDidEndInView:atPoint:• -touchManager:panningCanceledAtPoint:• -touchManager:pinchDidStartInView:atCenterPoint:• -touchManager:didReceivePinchAtCenterPoint:withScale:• -touchManager:didReceivePinchInView:atCenterPoint:withScale:• -touchManager:pinchDidEndInView:atCenterPoint:

PARAMETERS

RETURN VALUE

• -touchManager:pinchCanceledAtCenterPoint:

Overview

Undocumented

-touchManager:didReceiveSingleTapForView:atPoint:

A single tap was received

manager

The SDLTouchManager issuing the callback

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager didReceiveSingleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, didReceiveSingleTapFor view: UIView?, at point: CGPoint)

PARAMETERS

view

The view under the touch if it could be determined

point

The point at which the touch occurred in the head unit’s coordinate

system

-

touchManager:didReceiveDoubleTapForView:atPoint:

A double tap was received

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager didReceiveDoubleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, didReceiveDoubleTapFor view: UIView?, at point: CGPoint)

manager

The SDLTouchManager issuing the callback

view

The view under the touch if it could be determined

point

Location of the double tap in the head unit’s coordinate system. This is

the average of the first and second tap.

-touchManager:panningDidStartInView:atPoint:

Panning started

PARAMETERS

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager panningDidStartInView:(UIView *_Nullable)view atPoint:(CGPoint)point;

manager

The SDLTouchManager issuing the callback

view

The view under where the panning started if it could be determined

point

Location of the panning start point in the head unit’s coordinate

system.

-

touchManager:didReceivePanningFromPoint:toPoint:

Panning moved between points

SWIFT

optional func touchManager(_ manager: SDLTouchManager, panningDidStartIn view: UIView?, at point: CGPoint)

PARAMETERS

manager

The SDLTouchManager issuing the callback

fromPoint

Location of the panning’s previous point in the head unit’s coordinate

system

toPoint

Location of the panning’s new point in the head unit’s coordinate

system

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager didReceivePanningFromPoint:(CGPoint)fromPoint toPoint:(CGPoint)toPoint;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, didReceivePanningFrom fromPoint: CGPoint, to toPoint: CGPoint)

PARAMETERS

-touchManager:panningDidEndInView:atPoint:

Panning ended

manager

The SDLTouchManager issuing the callback

view

The view under where the panning ended if it could be determined

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager panningDidEndInView:(UIView *_Nullable)view atPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, panningDidEndIn view: UIView?, at point: CGPoint)

PARAMETERS

point

Location of the panning’s end point in the head unit’s coordinate

system

-touchManager:panningCanceledAtPoint:

Panning canceled

manager

The SDLTouchManager issuing the callback

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager panningCanceledAtPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, panningCanceledAt point: CGPoint)

PARAMETERS

point

Location of the panning’s end point in the head unit’s coordinate

system

-touchManager:pinchDidStartInView:atCenterPoint:

Pinch did start

manager

The SDLTouchManager issuing the callback

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager pinchDidStartInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, pinchDidStartIn view: UIView?, atCenter point: CGPoint)

PARAMETERS

view

The view under the center of the pinch start

point

Center point of the pinch in the head unit’s coordinate system

-

touchManager:didReceivePinchAtCenterPoint:withScale:

@abstract Pinch did move.

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager didReceivePinchAtCenterPoint:(CGPoint)point withScale:(CGFloat)scale;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, didReceivePinchAtCenter point: CGPoint, withScale scale: CGFloat)

manager

Current initalized SDLTouchManager issuing the callback.

point

Center point of the pinch in the head unit’s coordinate system.

scale

Scale relative to the distance between touch points.

-

touchManager:didReceivePinchInView:atCenterPoint:withScale:

Pinch moved and changed scale

PARAMETERS

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager didReceivePinchInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point withScale:(CGFloat)scale;

manager

The SDLTouchManager issuing the callback

view

The view under the center of the pinch

point

Center point of the pinch in the head unit’s coordinate system

scale

Scale relative to the distance between touch points

-touchManager:pinchDidEndInView:atCenterPoint:

Pinch did end

SWIFT

optional func touchManager(_ manager: SDLTouchManager, didReceivePinchIn view: UIView?, atCenter point: CGPoint, withScale scale: CGFloat)

PARAMETERS

manager

The SDLTouchManager issuing the callback

view

The view under the center of the pinch

point

Center point of the pinch in the head unit’s coordinate system

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager pinchDidEndInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, pinchDidEndIn view: UIView?, atCenter point: CGPoint)

PARAMETERS

-touchManager:pinchCanceledAtCenterPoint:

Pinch canceled

manager

The SDLTouchManager issuing the callback

point

Center point of the pinch in the head unit’s coordinate system

OBJECTIVE-C

- (void)touchManager:(nonnull SDLTouchManager *)manager pinchCanceledAtCenterPoint:(CGPoint)point;

SWIFT

optional func touchManager(_ manager: SDLTouchManager, pinchCanceledAtCenter point: CGPoint)

PARAMETERS

SDLTouchIdentifier Type DefinitionReference

Section Contents

Overview

Undocumented

UndocumentedSee more

OBJECTIVE-C

enum { SDLTouchIdentifierFirstFinger = 0, SDLTouchIdentifierSecondFinger = 1}

SWIFT

struct SDLTouchIdentifier : Equatable, RawRepresentable