SDK API Plug-in
As a response to the frequent requests expressed by the 3rd party developers for more internal APIs to be released, Nokia Developer is providing the Accessing internal platform APIs through the API Partnering Program process through which any developer can apply for access to the APIs needed to implement a given functionality. Whether the request is approved or not it all depends on the business justification provided and the current status of the APIs ( binary compatibility breaks, API deprecation, security considerations ... )
The receiver of the API should understand that despite the initial testing, which is intended to show that the API works on the targeted device, no guarantees can be given with regards to the binary compatibility or the availability of the API across platform version or even within devices released based on the current platform version.
As the number of processed API Partnering requests grew, the decision was made that some of the partnered APIs are released to the whole developer community. However, due to the above mentioned binary compatibility issues the release was made without any marketing campaign and the API Packages were released in archived mode.
The following very important message accompanies the plug-in and is also included in each API's release notes, please read carefully:
- Nokia is not giving any binary compatibility promise for these APIs; neither between platform versions or within a platform version.
- You must test your application with each device that the application can be installed on. This is needed to ensure the best possible user experience. To prevent application installation on other than tested devices, define the Product ID(s) (also known as Machine UID) in the .pkg file. More information can be found in the document S60 Platform: Identification Codes available on the Nokia Developer website.
The API plug-in package is also covered by a click through Limited License Agreement (LLA), the content of which is also included in the package. The use of the API included in the API Plug-in assumes that the LLA is implicitly accepted.
Note: The latest version of the VoIP Audio Services API device binaries (SIS file) can now be found through API's page in this wiki.
Currently the following API Plug-in packages are available:
S60 3rd Edition SDK, MR (Symbian C++)
- Package URL: Extensions plug-in package for S60 3rd Edition SDK for Symbian OS, for C++, MR
- Current version: 5.43
- Included APIs: 41
The following APIs are included:
S60 3rd Edition SDK, Feature Pack 1 (Symbian C++)
- Package URL: Extensions plug-in package for S60 3rd Edition SDK for Symbian OS, for C++, supporting Feature Pack 1
- Current version: 2.5
- Included APIs: 42
The following APIs are included:
Supplementary packages for API Plug-in for the S60 3rd Edition SDK for Symbian OS, for C++, supporting Feature Pack 1
- Package URL: S60 3rd Ed, FP1 API Plug-in Pack - Supplementary
|Tuner Utility API (new)||MMFDevSound API (updated with WINSCW libraries)||SIM Utils API (File:SIMUtilsAPI 3x 50.zip)|
S60 3rd Edition SDK, Feature Pack 2 (Symbian C++)
- Package URL: Extensions plug-in package for S60 3rd Edition SDK for Symbian OS, for C++, supporting Feature Pack 2
- Current version: 1.2
- Included APIs: 48
The following APIs are included:
Supplementary packages for API Plug-in for the S60 3rd Edition SDK for Symbian OS, for C++, supporting Feature Pack 2
- Package URL: S60 3rd Ed, FP2 API Plug-in Pack - Supplementary
|Radio Utility API (new)||SIM Utils API (File:SIMUtilsAPI 3x 50.zip)|
S60 5th Edition SDK (Symbian C++)
Supplementary packages for API Plug-in for the S60 5th Edition SDK for Symbian OS, for C++
- Package URL: S60 5th Edition API Plug-in Pack - Supplementary
|Radio Utility API (new)||MMFDevSound API (ARMV5 + WINSCW libraries)||SIM Utils API (File:SIMUtilsAPI 3x 50.zip)|
*** - Contains a SIS file compatible only with Nokia devices.
Symbian^3 and later (Symbian C++)
No SDK API plugins are available or planned for the Symbian^3 SDK (or later).
We highly recommend that developers restrict themselves to Qt, Qt Mobility or public Symbian C++ APIs. With the current rapid release cycle for Symbian^3 the risk that unsupported APIs will break between releases is high.
If functionality from SDK API plugins is required on Symbian^3 developers can request access through a technical support case or can roll out their own solutions using the PDK (available from http://symbian.nokia.com/). In either case, there remain no guarantees of compatibility through device updates and developers will need to rigorously retest APIs between releases.
- Question: The API I am using is not working on some devices. Should I report this as a bug against the platform?
- Answer: It is likely that this is due to a scheduled change in API's implementation, however, if you see the bug as also affecting the firmware components then the best approach would be to report it.
- Question: Will there be an announcement that a BC break was introduced in one of the S60 Platform builds if it affects one of the APIs from the plug-in?
- Answer: This kind of notification will be provided on best effort bases.
- Question: The APIs included in the plug-in are poorly documented. Where can I find better documentation?
- Answer: As the APIs were not intended for publishing there is no SDK level documentation available for them. These wiki pages are intended to compensate this documentation gap.
- Question: Are there any example applications available for these APIs?
- Answer: The only API that includes an example application is the Audio Proxy Server. More examples will be added to this wiki page as they will become available. You are of course welcome to contribute.
- Question: One of the existing APIs solves partly my problem but for a full solution I need access to another internal API. Can you provide that API in the same plug-in?
- Answer: Each API has been released with a specific use case in mind. If you need some other API to accomplish your task, it is likely that you are outside the intended use case and the only solution for you is the Accessing internal platform APIs through the API Partnering Program process. Please note that if the dependency is on a Symbian owned API, you will have to contact Symbian Ltd. for requesting the API.
- Question: The API I need requires manufacturer granted capabilities. Are these capabilities going to be granted to me?
- Answer: The standard process for requesting manufacturer approved capabilities applies for these APIs too.
- Question: Are you publishing all the frequently requested APIs in these plug-ins?
- Answer: Only the APIs which are considered stable enough and of wide interest are released in this plug-in. A special case is the API needed for creating Active Idle plug-ins as though it otherwise meets the criteria for being released in this plug-in it also requires for the developed 3rd party plug-in to be enabled in the firmware (i.e. firmware variant creation) and this makes the API unusable for most developers.
- Question: Where can I find the WINSCW/GCCE libraries for these APIs?
- Answer: The libraries included in this package are built at a later date that the public SDK. To speed up the release date and to avoid SDK incompatibilities it was decided that the WINSCW libraries will not be published. For the GCCE platform the ARMV5 libraries are used seamlessly.
- Question: Will these APIs work in ALL S60 devices, regardles of the manufacturer?
- Answer: These API have been tested on a limited set of Nokia devices and there is no binary compatibility promise given even for them. They might work on other devices too but developers are expected to perform thorough testing befor distributing applications using these API. Please note also the APIs marked with ***, they can only be used after installing binaries on the phone and those binaries are currently only available for Nokia devices.