Release 4.0.0
SDL 4.0.0 Release Notes
This is the second release candidate for the SDL Core Component version 4.0.0.
Changes to Mobile RPCs
- Added the LAUNCH_APP request type
- Added the QUERY_APPS request type
Changes to HMI RPCs
- Added the greyOut parameter to HMIApplications
Changes to Protocol
- Updated protocol version to 4 to indicate support for App Querying and Launching
Changes to Policy Table structure
- Added QueryAppsUrl to the URLs
New Features
App Launching and Querying
To enable querying and launching of applications from a server endpoint defined by SDL Core and updatable by the policy table, SDL has made the following changes
- SDL saves state information about connected applications (foreground and inactive) received from a connected application and sent via OnHmiStatus notifications
- SDL sends an OnSystemRequest with requestType = QUERY_APPS to an application supporting protocol V4 or higher after a successful register app interface if the application is in the foreground
- SDL sends an OnSystemRequest notification with requestType = QUERY_APPS to applications supporting protocol V4 or higher running on different devices after a successful register app interface if the application is in the foreground
- SDL does not send OnSystemRequest (QUERY_APPS) to applications in the inactive state
- Applications which are received by the SystemRequest (QUERY_APPS) are stored and sent to the HMI via UpdateAppList RPC
- SDL validates the JSON received from the OnSystemRequest(QUERY_APPS) according to the following structure defined by the sdl server
- When sending UpdateAppList RPCs, applications which are not registered have a greyOut value of true if there is no foregrounded application on the device and false if there is
- When SDL receives an ActivateApp from the HMI for an application which has not registered, SDL sends an OnSystemRequest(LAUNCH_APP) to an application which is in the foreground
- SDL defines a timeout for which to wait to receive a register app interface from the requested appId associated with a LAUNCH_APP command
- If an app does not register within the defined timeout, SDL sends an ActivateApp Response with APPLICATION_NOT_REGISTERED error
- If SDL receives an OnFindApplications from the HMI, and SDL is connected to an application using protocol V4 or greater, SDL will send an OnSystemRequest with requestType QUERY_APPS
Bug Fixes
The following bugs or internal behaviors have been fixed and updated in version 4.0.0 of SmartDeviceLink
- Fixed an issue where user consent was not properly revoked
- Fixed an issue where a policy table update might be applied before all previous changes were recorded and could result in a loss of information
- Defined timeouts in the .ini for SDL to wait for new audio and video data
- Add ability for video streaming applications to stream from a limited state if allowed by policies
- Fixed a bug where an iterator was not being incremented properly before the object was deleted
- Fixed a bug in perform interaction where manual text entry was not being triggered properly
- Fixed an issue where display capabilities were not being checked correctly for field names
- Fixed an issue where OnHMILevelChanged was not being called properly
- Add mutexes where needed for video and audio streaming timers
- Start microphone recording only on TTSSpeak success
- Update validation of Register App Interface Response parameters to not assume types are sent as array
- Rework cmake installation of HMI to bin directory
- Fix memory leak for TTS Speak start and stop
- Fix issue where sdl returns an empty templatesAvailable array after opening a non-media app with alternate template
- Make policy table and update comparison case sensitive for keys
- Add emergency event notification to HMI RPC
- Modify some log levels