Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
Nokia X FAQ
Frequently asked questions about Nokia X.
Q: I cannot find an answer to my question on this page. What should I do next?
A: I trust that you have already explored the developer documentation. Please visit Discussion boards and stackoverflow for further assistance.
Nokia X Services SDK release notes
Nokia X Services SDK 1.1
April 29th 2014
Terms and condition changes for the following:
- Nokia X services SDK - http://tools.nokia.com/nokia-x/repository/addon.xml)
- Nokia X services SDK offline Installer (Windows, MAC, and Linux - 64bit).
- Nokia X Eclipse Extensions.
- Android Studio - Nokia X Code Samples plug-in.
- Nokia X - Code Samples.
- Support for setting aliases for In-app Purchase Product IDs in Publish tool - allows developers easier reuse of In-app Purchase items created for other versions of their app.
- HERE reference libraries updated. The following reference wrapper libraries with new namespaces are added for enabling one APK package strategy with HERE and Google Maps v1/v2:
- HERE v1 - <android-sdk>\extras\nokia\nokia_x_services\libs\here\com.nokia.android.maps.jar
- HERE v2 - <android-sdk>\extras\nokia\nokia_x_services\libs\here\nokia-x-here-maps-wrapper-v2
- Support One APK strategy for HERE Maps and Google Maps.
- Updated Nokia In-App Payment enabler.
- Support One APK for Nokia In-App Payment and Google Billing.
- Added the following samples:
- Updated the sample: <android-sdk>\extras\nokia\nokia_x_services\samples\niap\PepperFarmSimulatorPepperFarmSimulator
- Repository-based install/update for Android Studio - Nokia X Code Samples plug-in.
- The build target is now changed to "Nokia X System Image (4.1.2)".
- Add-on manufacturer is now changed to "Nokia", which was earlier "Unknown".
- Nokia X Eclipse Extensions are now signed.
- Android Studio sample plug-in support for Linux and Mac.
- Nokia X Code Samples now include a Readme.html file.
- Nokia X Analyser (offline) text updates.
Nokia Services SDK 1.0
February 24th 2014
Q: Are IDE (development tool) and simulator only available on Windows? Due to Java performance issues, we prefer developing on Ubuntu or OS X rather than Windows.
A: You use normal Android SDK and just add our add-on on top of it. This has been verified to work on Windows, Ubuntu and Mac.
Q: ADB doesn't recognize my device! What is wrong?
A: Make sure that the ADB is configured properly and that the USB debugging (in device settings) is enabled.
Q: Our application is built using IntelliJ IDEA. Is that supported?
A: The SDK has been verified to work with IntelliJ IDEA.
Q: I am using APK expansion to download large media assets for my game. How do I port this?
A: Download the media files from predefined location, instead of relying on License Verification Library. Since the disk space is limited (total size reserved for /sdcard partition is 2GB), we recommend using external SD card, if it has been inserted.
Q: Is Open GL supported?
A: Yes, Open GL ES 2.0 is supported.
Q: How much memory do I have available for application data?
A: The RAM available depends on the variant; Nokia X is in-line with other 512 MB devices. Nokia X+ and Nokia XL have 768 MB of RAM. Internal disk size is 4 GB and there is support for Micro SD card up to 32 GB size.
Q: How many and what kind of sensors and relevant APIs are supported in Nokia X Dual SIM device?
A: Normal AOSP sensor APIs, normal sensors apart from Gyroscope. Proximity and light sensor, 3D accelerometer, GPS/A-GPS. No magnetometer or NFC.
Q: What are the user agents of Nokia X devices?
Nokia X Dual SIM:
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Nokia_X Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Nokia X+ Dual SIM:
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Nokia_X+ Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Nokia XL Dual SIM:
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Nokia_XL Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Services and APIs in general
Q: What are the general common parts and differences when compared to standard Android?
A: Both have Linux kernel and are also having Open source parts of Android, including Dalvik, general open source Android libraries and Application framework. Additionally Nokia adds own extensions to application framework, Nokia UI extensions and selected Google Play APIs are replaced by Nokia specific implementation. The replacement package includes for example APIs for maps, push notifications, and in-app billing.
Q: Can we see AOSP native app as an Android application with Google dependent APIs replaced with Nokia APIs?
A: AOSP means "Android Open Source Project", which indeed means "Android before Google adds their proprietary APIs on top". Our platform is AOSP + Nokia APIs as replacement for these proprietary Google services.
Q: We need "service" and "intent", core features of Android OS. Are those features still available on AOSP?
A: Yes. We have pretty much stock Android, with all the standard features like Activity lifecycle etc. We also pass the standard Android CTS (Compatibility Testing Suite).
Q: Is the Geocoder API supported on Nokia X?
A: Yes, it is.
Q: If we are to replace Google APIs with Nokia APIs, how similar is Nokia APIs to Google APIs, especially in terms of packages to be imported, name of each functions, and name & number of parameters?
A: APIs are made to be almost identical. If you are using Google Maps API v2, you only need to change the API keys (and can keep on using same package and class names), and inject our adapter JAR file to the application. With Nokia In-App Payment, we have changed the .aidl class name, and name of one method. Otherwise behavior is the same. We also don't have support for checking purchase signature yet.
Q: Can I use Google account provider to log in to Google services?
A: No. Google account provider is not installed on the device.
Q: Can I use G+ services in my application?
A: No, G+ APIs are not supported.
Q: What happens if my application uses Google push notifications or in-app billing, and I don't modify the application at all?
A: The application will work, but won't receive push notifications, and the user won't be able to initiate payment.
Q: I'm using in-app advertising. Will it continue to work?
A: Yes. Since Google Play Store is not installed on the device, links pointing to Google Play app download pages will be handled by other apps capable of handling the url scheme. If Nokia Store is chosen to handle such links and the app is in Nokia Store, the user will be able to download the app.
Q: What if an advertisement has a link to the application landing page on https://play.google.com (usually through redirection chain)?
A: User gets prompted whether he wants to open the target page in the browser, or Nokia Store application. If the user chooses Nokia Store, the corresponding application detail page in Nokia Store is shown.
Q: Which in-app advertisement libraries and ad networks are supported?
A: Advertisement libraries are bundled as part of third party applications, and do not require special enablers on device. In our testing, we have not detected problems with any advertisement libraries or ad networks.
Nokia Store and publishing
Q: Are automatic application updates supported?
A: There is an automated update detection implemented. When updates are detected, the user still needs to initiate the update, which they can either do directly from the update notification or from within the store app. Of course, apps can also handle their own update detection, but they still need to launch the store to the app's detail view so the user can initiate the update. All that publishers need to do to enable updates via the store is to publish an update with a higher version code than the installed version.
Q: What monetization models are supported?
A: Nokia In-App Payment is the preferred way to monetize applications published in Nokia store. The use of other 3rd party ad providers, to monetize apps published in Nokia Store, is allowed.
Q: How can I link to my products in Nokia Store?
A: Nokia Store supports linking to a product (app) detail page using format below, where <package_name> is the fully qualified package name, which is declared in the app's manifest file:
For more information, see Deep Linking to Store on Nokia X article.
Q: When trying to submit my APK file, I got an error message saying "Submit an APK file signed with release keys valid until at least 2033-10-22 00:00:00". However, my keys are valid until 2100! What's the problem?
A: This is a known issue; at the moment, APK files which certificates expire between 2100 and 2133 will fail validation. The Store team is working on the issue and the bug should be fixed very soon.
Q: I can't get the authorization key by clicking on the service name!
A: Please try to get the key in Firefox or Chrome, not IE.
Q: My application uses C2DM or GCM for push notifications. What do I need to do to port it to use Nokia version of the API?
A: If you use intent based API, change the intent names from `com.google.android.c2dm.*` to `com.nokia.pushnotifications.*`. Also, you need to register your service to Nokia Notifications developer console, and change your backend server to post notifications to a different REST API.
Q: What are the NNA service limits?
A: 100 message buffer, 4 KB payload size.
Q: How many messages per second can we send to NNA service?
A: Currently there is no limit.
Q: My application uses Google Maps API v1, what should I do to port it?
A: Follow the instructions of the porting guide (HERE wrapper for Google Maps v1).
Q: My application uses Google Maps API v2, what should I do to port it?
A: Follow the instructions of the porting guide (HERE wrapper for Google Maps v2).
Q: All I get is a black map element in my user interface with the HERE logo. What's wrong?
A: This can be because of one of the following three reasons:
1. You don't have hardware acceleration enabled. If you are running the application in the emulator, make sure you have Use Host GPU selected in the Android Virtual Device (AVD) settings. In addition, make sure that you have hardware acceleration enabled in the manifest file (inside the `application` or `activity` tag):
<application ... android:hardwareAccelerated="true" ... >
2. You haven't set the app ID and app code or they are invalid. The ID and the app code must be placed in the manifest file within application tags:
<application ... >
<meta-data android:name="com.here.android.maps.appid" android:value="APP_ID"/>
<meta-data android:name="com.here.android.maps.apptoken" android:value="TOKEN"/>
3. You don't have SD card set in the AVD settings. You must set a SD card to be present in order for the maps to work.
Q: Are the cached map tiles shared among all apps?
A: Yes, they are. In addition, the downloaded map data is automatically utilised by 3rd party apps too.
Nokia In-App Payment
Q: My application uses In-App Billing. What do I need to do to start using Nokia In App Payment?
A: You need to register your application at Nokia Store, where you can configure the Content IDs that can be purchased. Both premium content, e.g. game levels and content that can be purchased repeatedly such as in-game coins are supported. The intent is to make trivial to port an application using Google IAB to Nokia In-App Payment. We do not support payment signature checking.
Q: Does Nokia In-App Payment require permissions?
A: Yes, permission com.nokia.payment.BILLING is needed for Nokia In App payment in application manifest.
Q: What payment methods Nokia In-App Payment supports?
A: Nokia In-App Payment only uses operator billing. Credit card or other payment methods are not supported.
Q: How do I define product prices?
A: Product price is defined in price buckets from 1 to 15. Actual price of the product is localized according to market.
Q: What price bucket should I use?
A: Supported price buckets vary according to operator and market. Please note that not all operators support high price points. You can check the supported prices for each market from Nokia Billing Matrix.
Q: How should I test purchases?
A: Instead of roles, pre-configured product IDs can be used to test purchases in Nokia In-App Payment.
Q: I'm testing my in-app payment app on Nokia X device, but it does not work! What am I doing wrong?
A: When testing on a device, Nokia In-App Payment requires a SIM card to work.
Q: Can I replace Nokia In-App Payment UI?
A: No, the Nokia In-App Payment dialogs are always presented on top of your application. The dialogs are provided by the Nokia In-App Payment enabler and you cannot change their appearance.
Q: Are subscriptions supported in Nokia In-App Payment?
A: No, subscriptions are not supported in Nokia In-App Payment.
Q: Can I use signature verification?
A: Signing purchases with private key is not currently supported. Instead we encourage you to inspect integrity of the Nokia In-App payment enabler. Fingerprint verification should be done before binding to the service. Example source code can be found from Payment.java, which is part of PepperFarmSimulator sample application.
Q: Is there a Purchase Status API?
A: Purchase status API is Google Play specific, thus not supported.
Q: Does the Nokia In-App Payment enabler store the information of the purchased items locally or does it need to check from the Store via web?
A: The items are cached, but their persistence is not guaranteed. Thus, you should not trust the items to be available offline.
Q: Can I change the price point of my in-app payment item later?
A: Yes, you can modify the price point of your content item.
Q: My application uses Holo theme. Can I keep on using that?
A: Yes. Holo theme is supported as-is.
Q: What is the hardware button layout and functionality?
A: There is only have one hardware key, which is the back button. The home key is emulated by long pressing the back button. The options key, for apps that were build for Android 2.x target, is replaced by swipe-to-options gesture (swipe up from bottom edge).
Q: How do you exit an application to the home screen?
A: By long-pressing the back button. Swipe-to-exit gesture works only with system applications and is not enabled by default. Swipe-to-exit can be enabled and disabled in phone settings.
Q: Is there support for WebP or WebM?
A: No. If you are serving WebP e.g. based on Android 4.1.2 User Agent, you should detect Nokia X device specifically and serve jpg/png instead.