Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of SDL4.0 feature #39

Merged
merged 47 commits into from
Mar 9, 2015

Conversation

PKramchaninov
Copy link

The pull request contains changes regarding maintenance of communication by 4th protocol version.

The API changes that are included:

SystemRequest: now supporting two additional parameters: QUERY_APPS and LAUNCH_APP
UpdateAppList: now contains the marker whether application is able or not.

All other changes are not related to the public API:

The ApplicationManager now keeps two lists of applications - the first one is already registered and the second one is applications which available on mobile devices for registration and activation.
The application from second list will move to the first one during real registration.

Andrey Oleynik and others added 30 commits February 23, 2015 13:57
Andrey Oleynik and others added 17 commits February 23, 2015 14:24
These two parameters are not usefull anymore, since SDL
will send either package name or url schema via 'url' field.
According to the new requirements the only fields
that are required is app_name and app_id.
According to the new requirements if at least on record
in json file is valid SDL consider whole json as a valid.
Made ability to send LAUNCH_APP to all devices
application if no any foreground applications on the current
device.
The problem was in races between resumption and application registration.
The set of applications that can be registered is stored by
mobile_app_id, but know it also consider device id
@justinjdickow
Copy link
Contributor

Below are instructions for testing app launching and query with a full system set up.

SDL Server

The app querying specification defines an endpoint within Policies where sdl_core will reach out to receive a list of applications that can be launched. The SDL Server provides the back end functionality for app launching and querying.

You can find the SDL Server on GitHub. The README contains detailed instructions for installing and launching the server. Launch the server on your local machine, and direct your browser to http://localhost:3000. Note that you need mongod running on your machine before launching the server.

The App Launching Server Specification defines an endpoint /applications/available/:moduleId.json which return a list of applications available for launching to the handset for filtering.

To check if there is a module already available you can go to http://localhost:3000/modules.json. If there is a module available, there will be one or more objects in the response array. Keep this response, you'll need the "_id" field for later.

If there is not a module already available, go to http://localhost:3000/cars and define a new vehicle, then check http://localhost:3000/modules.json.

Next, you'll need to define applications that can be launched. Go to http://localhost:3000/apps and define some applications. Make sure that you define a url scheme under the iOS tab of the application. This is required for an application to be launched from SDL. A URL scheme has the format someScheme://. Save the URL Scheme you used for later steps.

You'll also need the local ip address of your machine

At the end of the SDL Server set up you should have

  1. SDL Server running on your local machine connected to mongo db
  2. Your machine's local IP Address
  3. The module id of your vehicle
  4. The URL Scheme of the app you want to launch

Mobile

You need at least one app installed on the test device (presumably an iPhone), which we have built for you, the V4Tester application. This application implements SDL 4.0 and will respond to SDL Core's QUERY_APPS system request, as well as filter the response for available applications. If you do not have any other applications on the device, you can only test QUERY_APPS functionality, in which no applications will be sent to sdl core which can be launched.

In order to support the launching of an application, you'll have to create an additional app which responds to the URL Scheme of the application that you set up on the SDL Server. To do so, go to Xcode, select File>New>Project... and under ios/application create a Single View Application. Open the application's Info.plist file (under the Supporting Files section of the project explorer by default). Highlight the Information Property List item and click the plus button to add a new entry to the Property List. From the drop down menu, select URL Types as the key. In the Item 0 dictionary add a "URL Schemes" Array, and make Item 0 in the array the prefix to the URL you previously defined (So if you defined someScheme:// then Item 0 should be "someScheme"). Make sure the URL identifier matches your application's identifier. When you're finished you should have something that looks like the following. Install this application on your test device. Note - this application will only launch during this process, since it is not SDL Connected it will not register with the head unit.

Plist Example

At the end of the Mobile device set up you should have

  1. The V4 Tester Application installed on your device
  2. An application for launching that matches the application submitted to SDL Server
  3. Your iPhone should be on the same network as the machine running SDL Server

SDL Core

Take the following steps to launch applications from sdl core.

  1. Install the correct version of SDL Core
  2. Add the queryAppsUrl that you saved during sdl server set up in the src/appMain/preloaded_pt.json under the "endpoints" property in the format http://[local machine ip]:3000/applications/available[moduleId].json. For example http://192.168.0.150:3000/applications/available/789b739c47c7490321058200.json.
  3. Run SDL Core
  4. Launch the V4 Tester application on the iPhone
  5. Connect the application via wifi by entering the IP address of Core into the V4 tester
  6. Both applications should show up on the head unit for launching
  7. Select the other application, and you should see it launched and brought to the foreground on the phone

@justinjdickow justinjdickow merged commit d3403b3 into smartdevicelink:develop Mar 9, 2015
@patrick-bercow
Copy link

a very stupid question: is SDL able to run on Windows CE (my current toyota model levin)? do you provide future support for reinstalling sdl from WinCE to SDL?

@chinlin0924
Copy link

@fangsidian if u take a look at source code, windows porting on WINCE will take a lot of time using the POSIX solutions and the dependencies of linux libraries.

@BrandonHe
Copy link
Contributor

@fangsidian Yes, SDL is able to run on WinCE6.0, but the sdl core version presently run is 3.6 (https://github.com/APCVSRepo/sdl_core_v3.6_wince), we are now trying to merge it to v4.0, but there still need a lot of work to be done to officially send pull request to this Repo.

dev-gh pushed a commit to dev-gh/sdl_core that referenced this pull request Jun 5, 2016
…r-compile-error

Fix policy compile error
dev-gh pushed a commit to dev-gh/sdl_core that referenced this pull request Jun 7, 2016
…r-compile-error

Fix policy compile error
Related-issues: APPLINK-22713, APPLINK-22716
LuxoftAKutsan pushed a commit that referenced this pull request Feb 23, 2017
…-consent-passengersRC

REVSDL-1258: Fix saving of country consent passengers RC
davidswi pushed a commit to davidswi/sdl_core that referenced this pull request Oct 25, 2017
…OG4CXX_RONDOM_SIGSEGV_WORKAROUND to develop

* commit '0cda7e7dac81039813b75b95ebd4bf46bab33ab4':
  SDL-1053 Add workaround for LOG4CXX random SIGSEGV
@MNikora MNikora deleted the APPLINK-11088 branch April 29, 2020 10:47
AByzhynar added a commit to AByzhynar/sdl_core that referenced this pull request May 25, 2020
…reject_creation_of_widgets_that_duplicate_main_window_for_WEB_VIEW_template
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants