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.
Q: What is new in the latest SDK release?
A: See Nokia X services SDK release notes.
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. For more information, see Device setup page in Nokia X Developer's Library.
Q: Our application is built using IntelliJ IDEA. Is that supported?
A: The SDK has been verified to work with IntelliJ IDEA.
Q: Is there a way to provide feedback about the SDK?
A: There sure is, and all feedback is much appreciated! To find out how, see this article.
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 X2 has 1 GB of RAM. 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 on all devices 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 devices?
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?
Mozilla/5.0 (Linux; Android 4.3; Nokia_X2 Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Mobile Safari/537.36 OPR/21.0.1437.75439
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: Why does my app crash when creating a map instance?
A: If you are using com.here.android.sdk.jar library, the most likely reason for the crash is that you have exported the library in your project. To fix the issue, make sure that you don't put com.here.android.sdk.jar in the libs folder of your project and that you have not exported the library. In Eclipse, open the project properties, select Java Build Path, open Order and Export tab and make sure that the checkbox next to com.here.android.sdk.jar is not checked.
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: Nokia X2 has two hardware buttons: Back and Home. On Nokia X/X+/XL there is only one hardware button, Back, and the Home button 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: On Nokia X2 tap the Home button. On Nokia X/X+/XL long-press the Back button. Swipe-to-exit gesture works only on Nokia X/X+/XL and 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.
Acquiring Nokia X kernel source
Q: How do I request the kernel source for the Nokia X Firmware?
A: Microsoft Mobile offers to provide you with the source code for these files. Please send a written request, along with the relevant details (software name and version), to:
Source Code Requests
Microsoft Mobile Oy
This offer is valid for a period of three (3) years from the date of the distribution of this product by Microsoft Mobile Oy.