These release notes apply to an earlier version of the software and the corresponding documentation. Some links may no longer be active.

10.2 Gold Release Notes

Simulator

Screen showing the simulator running on a computer.

The BlackBerry 10 Device Simulator allows you to simulate the BlackBerry 10 OS environment to help you develop your apps. Take a look at the release notes.

Visual Studio Plug-in

Screen showing the core logo with a plug coming out from it.

Prefer to develop in Microsoft Visual Studio? We have the BlackBerry Native Plug-in for Microsoft Visual Studio. Take a look at the latest release notes.


If you're interested in upgrading your apps, skip down to the Changes in this release section to find out what APIs are changing in this release.


Upgrading to 10.2 Gold

If you're upgrading from the 10.1 Gold version or earlier of the Native SDK, you'll notice that we've redesigned the QNX Momentics IDE. You can upgrade in two ways: using the installer or using the IDE. We recommend using the installer to get a fresh installation of the new IDE.

Using the installer


If you're using the installer, the redesigned QNX Momentics IDE needs a unique location to install. You have two options for upgrading using the installer:

  • Uninstall the previous version, then install the new version Hover or touch for more information.
  • Install the new version to a different location Hover or touch for more information.

To download and install the IDE and 10.2 Gold version of the BlackBerry 10 Native SDK:

  1. Download the QNX Momentics IDE for BlackBerry from the Downloads page.
  2. Complete the installation by following the on-screen instructions.
  3. Launch the QNX Momentics IDE for BlackBerry.
  4. Select an API level (10.2 Gold in this case) or, if a device is connected to the computer, the IDE automatically detects and installs the appropriate SDK for your device.

Using the IDE


If you're upgrading using QNX Momentics IDE, you can update the IDE only or the SDK and IDE. To update the IDE only, on the Help menu, click Check for Updates. To update the SDK and IDE, complete the following in the QNX Momentics IDE:

  1. On the Help, click Update API level.
  2. Locate the 10.2 Gold version of the BlackBerry 10 Native SDK and click Install.

In the 10.1 version of the IDE, if you clear the Update IDE check box while installing the 10.2 SDK, you must update the IDE separately by clicking Help > Check for Updates. For compatibility, the 10.2 version of the SDK requires the 10.2 version of the IDE.

 

For more information about API levels

See API levels in Getting Started.

Targeting multiple API levels

If you're using the 10.2 Gold release version of the SDK but you still want to develop for a BlackBerry 10 device that's running version 10.1 or earlier of the OS, you need to download an additional SDK by using the update site. To do this, in the QNX Momentics IDE for BlackBerry, complete the following:

  1. On the Help menu, click Update API Levels.
  2. On the API Levels dialog box, click Install for the API level that you want.
  3. When the API level finishes installing, click OK.

For more information, see Set up your environment.

Finding the appropriate version

Here's a quick summary of the versions you'll need:

  • If you are developing for a BlackBerry 10 Dev Alpha device, you need to download the 10.0.10.263 API level from the update site.
  • If you are developing for the BlackBerry Z10 smartphone or the BlackBerry Q10 smartphone, you need to download an API level from the update site that matches the device version (10.0 or 10.1) that's provided by your wireless service provider. You can verify the device version by opening the Settings app, tapping About, selecting OS in the Category drop-down list, and checking the version that's listed in the OS Version field.

For more information about developing apps that work on different versions of the BlackBerry 10 Native SDK, see Appropriate version of the BlackBerry Native SDK in the BlackBerry Support Community Forums.

Reverting to an earlier software version

If you've upgraded the software version on your device to a recent SDK OS build, and you want to revert to a software version that's been released by your wireless service provider, complete the following:

  1. Open BlackBerry Link.
  2. Connect the smartphone using the micro USB cable.
  3. At the bottom of the BlackBerry Link window, click the Computer tab.
  4. Select Settings.
  5. Under Reload Device Software, select Reload.
  6. Follow the on-screen instructions.

Any backups created while running a developer build of BlackBerry 10 OS version 10.2 will not be able to be restored once the production BlackBerry 10 OS has been reloaded.

For more information on reverting to an earlier software version, read this knowledge base article.

MD5 checksum validation

MD5 checksum files are available for releases of the BlackBerry 10 Native SDK and the BlackBerry 10 Device Simulator. You can use these files, in conjunction with any checksum tool that supports MD5, to validate the installer files that you download. Use the following links to download MD5 checksum files for each installer:

Back to Top

Core - Highlights

Screen showing the IDE apps highlight.
Screen showing the app signing changes highlight.
Screen showing the headless apps highlight.

QNX Momentics IDE

In case you missed it in the 10.2 beta release, the QNX Momentics IDE for BlackBerry has a new and simplified interface. We've introduced API levels which can help you determine what APIs are available on a device OS version. You can also get access to developer forums, documentation, and sample apps straight from the IDE. For more information on the new IDE, visit Getting Started.

App signing changes

In this release, the way that you sign your apps (to prepare them for distribution in the BlackBerry World storefront) has changed. Previously, you used code signing keys that you obtained from BlackBerry to sign your apps. Now, you use a BlackBerry ID token that's associated with your BlackBerry ID. To learn more about these changes, see Signing apps.

New permissions

We've added a few new permissions that you can specify for your apps. Permissions let your app access sensitive or restricted functionality on the device, such as contact information and shared files. To see what permissions are new, check out the New in this release section. For more information on permissions, take a look at App permissions.

Cascades - Highlights

 

The build, run, and stop buttons from the new QNX Momentics IDE.

QNX Momentics IDE

Difference between accessibly-designed text and regular-text.

Accessibility

Headless apps: apps that run in the background

Headless apps

The QNX Momentics IDE for BlackBerry has a new and simplified interface. We've introduced API levels which can help you determine that APIs are available on a device OS version. Now, your debug messages using qDebug() and console.log() display directly in the console. We have improved the automatic detection of devices that you connect to the IDE as well. For more information, see Set up your environment.

Adding assistive technologies to your app allows more users to enjoy your app, making your app more accessible. We've added new Accessibility APIs to allow you to pair with assistive technologies. For more information on the APIs, take a look at the Accessibility documentation. For more information on validating your code for accessibility, take a look at Building accessibility into your app.

We now support headless apps in BlackBerry 10. A headless app runs in the background on the BlackBerry 10 OS. Unlike other applications with a UI and an associated active frame, a headless application is not under the direct control of a user. For more information on headless apps, take a look at the documentation.

The BlackBerry logo representing the new BlackBerry ID service APIs
A TextField, one of the core controls
Cloud-based storage

ID service APIs

Let your users access off-device services and content that require user authentication or authorization by integrating the Identity Service into your app. Your users can sign in with their identity provider, using their BlackBerry device, and access content or services that they have with that identity provider from within your app and elsewhere on their device. For more information, take a look at the API reference.

Core controls docs

We've got lots of new documentation on the core controls of Cascades including how to use them, sizing and layouts, and the QML and C++ based approaches. All this for the core controls you're familiar with: activity indicators, buttons, containers, drop-down menus, images, lists, pickers, progress indicators, and more. Interested? take a look at the documentation.

Cloud-based storage

Cloud-based storage (Cloudbase.io) has come to BlackBerry 10! You can send or receive push data from the cloud, as well as use a integrated control panel to manage and analyze your data. You can also get 6 months of free service in addition to the 4-month trial. For more information, take a look at cloudbase.io.

Back to Top

Core - New in this release

BBM Social Platform


We've added new functionality:

  • You can suppress the progress dialog when your app registers with BBM to create a more seamless experience for the user by calling bbmsp_register_silent(). When registration is complete, a system toast appears to the user, confirming that your app is connected to BBM.
  • You can retrieve the version of BBM that is running on a user's or a contact's device by calling bbmsp_profile_get_bbm_version() or bbmsp_contact_get_bbm_version(). You can then determine which version of the BlackBerry OS is running on the device (for example, BlackBerry 7 and earlier, or BlackBerry 10).
  • You can determine whether a user has completed the setup of BBM on their device by signing in with their BlackBerry ID (Setup > BlackBerry Messenger) by calling bbmsp_is_bbm_setup().
  • A new registration state, BBMSP_ACCESS_BLOCKED_ENTERPRISE_PERIMETER, is available to indicate that registration with the BBM Social Platform is blocked because your app is installed in the Work perimeter. To connect to BBM, your app must be installed in the Personal perimeter.

BlackBerry Platform Services Library


Cellular network status (cellularnetwork.h)

This is a new API with functions to determine changes to the cellular network status on the device.

Screen input guard (screen_input_guard.h)

This is a new API with functions that enable screen input guard, which is a feature of the device that turns the screen off and disables the touch screen during a phone call or similar voice chat. This API lets your app avoid unwanted touches causing unintended events.

Device information (deviceinfo.h)

Added the following data type and functions:

  • deviceinfo_hdmi_connector_t
  • deviceinfo_details_get_device_name()
  • deviceinfo_details_get_hdmi_connector()
  • deviceinfo_details_get_model_name()
  • deviceinfo_details_get_model_number()
  • deviceinfo_details_get_core_count()
  • deviceinfo_details_get_core_model()
  • deviceinfo_details_get_core_speed()
  • deviceinfo_details_get_processor_name()
  • deviceinfo_details_get_details_get_imei()
  • deviceinfo_details_get_details_get_meid()
  • deviceinfo_details_get_details_get_pin_string()

Dialog windows (dialog.h)

Added the following functions:

  • dialog_set_alert_checkbox_enabled()
  • dialog_set_alert_icon()
  • dialog_set_busy()
  • dialog_set_button_limit()
  • dialog_set_input_flags()
  • dialog_set_popuplist_allow_deselect()
  • dialog_set_popuplist_cancel_on_selection()
  • dialog_set_popuplist_show_basic_selection()

Geolocation (geolocation.h)

Added the following functions:

  • geolocation_event_get_accuracy_rotation_angle()
  • geolocation_event_get_accuracy_semi_major_axis()
  • geolocation_event_get_accuracy_semi_minor_axis()
  • geolocation_event_get_geoid_height()
  • geolocation_event_get_hdop()
  • geolocation_event_get_pdop()
  • geolocation_event_get_propagated()
  • geolocation_event_get_satellite_is_almanac_decoded()
  • geolocation_event_get_status_accuracy()
  • geolocation_event_get_status_active_request()
  • geolocation_event_get_status_background()
  • geolocation_event_get_status_passive()
  • geolocation_event_get_status_period()
  • geolocation_event_get_status_response_time()
  • geolocation_event_get_vdop()
  • geolocation_event_get_vertical_speed()
  • geolocation_event_is_accuracy_rotation_angle_valid()
  • geolocation_event_is_accuracy_semi_major_axis_valid()
  • geolocation_event_is_accuracy_semi_minor_axis_valid()
  • geolocation_event_is_geoid_height_valid()
  • geolocation_event_is_hdop_valid()
  • geolocation_event_is_latitude_valid()
  • geolocation_event_is_longitude_valid()
  • geolocation_event_is_pdop_valid()
  • geolocation_event_is_propagated_valid()
  • geolocation_event_is_status_accuracy_valid()
  • geolocation_event_is_status_active_request_valid()
  • geolocation_event_is_status_background_valid()
  • geolocation_event_is_status_passive_valid()
  • geolocation_event_is_status_period_valid()
  • geolocation_event_is_status_response_time_valid()
  • geolocation_event_is_vdop_valid()
  • geolocation_event_is_vertical_speed_valid()
  • geolocation_request_status()
  • geolocation_set_passive()
  • geolocation_set_stationary()

Menus (menu.h)

Added the following data type and functions:

  • menu_sub_item_type_t
  • menu_invocation_get_uri_match()
  • menu_request_get_bypass_target_selection_card()
  • menu_request_set_bypass_target_selection_card()
  • menu_sub_item_get_frecency()
  • menu_sub_item_get_secondary_icon()
  • menu_sub_item_get_type()

Network status (netstatus.h)

Added the following constant, data type, and functions:

  • NETSTATUS_INTERFACE_TYPE_P2P (netstatus_interface_type_t)
  • netstatus_info_t
  • netstatus_event_get_info()
  • netstatus_free_info()
  • netstatus_get_info()
  • netstatus_info_get_availability()
  • netstatus_info_get_default_gateway()
  • netstatus_info_get_default_interface()
  • netstatus_info_get_default_ip4_interface()
  • netstatus_info_get_default_ip6_interface()
  • netstatus_info_get_ftp_proxy_host()
  • netstatus_info_get_ftp_proxy_port()
  • netstatus_info_get_http_proxy_host()
  • netstatus_info_get_http_proxy_login_required()
  • netstatus_info_get_http_proxy_port()
  • netstatus_info_get_https_proxy_host()
  • netstatus_info_get_https_proxy_port()
  • netstatus_info_get_ip4_status()
  • netstatus_info_get_ip6_status()
  • netstatus_info_get_ip_status()
  • netstatus_info_get_name_server()
  • netstatus_info_get_num_default_gateways()
  • netstatus_info_get_num_name_servers()
  • netstatus_info_get_num_search_domains()
  • netstatus_info_get_search_domain()
  • netstatus_info_get_search_domains()
  • netstatus_interface_get_http_proxy_host()
  • netstatus_interface_get_http_proxy_login_required()
  • netstatus_interface_get_http_proxy_port()
  • netstatus_interface_get_ip4_status()
  • netstatus_interface_get_ip_destination_address()
  • netstatus_interface_get_mtu()
  • netstatus_interface_get_num_search_domains()
  • netstatus_interface_get_parent_interface()
  • netstatus_interface_get_search_domain()

Deprecated the following functions:

  • netstatus_get_availability()
  • netstatus_get_default_interface()
  • netstatus_event_get_availability()
  • netstatus_event_get_default_interface()
  • netstatus_event_get_http_proxy_login_required()
  • netstatus_event_get_http_proxy_host()
  • netstatus_event_get_http_proxy_port()
  • netstatus_event_get_https_proxy_host()
  • netstatus_event_get_https_proxy_port()
  • netstatus_event_get_ftp_proxy_host()
  • netstatus_event_get_ftp_proxy_port()
  • netstatus_interface_get_search_domains()

Screen events (screen.h)

Added the following function:

  • screen_event_get_context()

Virtual keyboard (virtualkeyboard.h)

Added the following constants:

  • VIRTUALKEYBOARD_LAYOUT_NUMBER
  • VIRTUALKEYBOARD_ENTER_REPLACE

Deprecated the following constant:

  • VIRTUALKEYBOARD_LAYOUT_DIAL_PAD

Bluetooth Library


  • Bluetooth GATT server
    • You can now use your BlackBerry 10 device as a GATT server. The APIs are available in btgattsrv.h
  • Blutooth Human Interface Device (HID)
    • You can implement the Bluetooth HID profile to remote control HID hosts. The APIs are available in bthid.h
  • Blutooth Object Push Profile (OPP)
    • You can use the OPP APIs to send files to a paired Bluetooth device that supports OPP. The APIs are available in btopp.h
  • Bluetooth low energy
    • Added new low energy functionality to btdevice.h and btle.h.
    • Added the following constants:
      • BT_EVT_LE_DEVICE_CONNECTED
      • BT_EVT_LE_DEVICE_DISCONNECTED
      • BT_EVT_LE_NAME_UPDATED
    • Added the following functions:
      • bt_rdev_get_le_device()
      • bt_rdev_is_dual_mode()
      • bt_le_set_scan_params()

btdevice.h

Added the following constants and functions:

  • BT_EVT_DEVICE_CONNECTED
  • BT_EVT_DEVICE_DISCONNECTED
  • bt_rdev_get_current_tx_power()
  • bt_rdev_update_friendly_name()
  • bt_rdev_delete()

Camera Library


camera_api.h

Added the following functions:

  • camera_clear_3a_face_id()
  • camera_get_3a_face_id()
  • camera_get_photo_output_framerates()
  • camera_set_3a_face_id()

Added the following enumerators to camera_error_t:

  • CAMERA_EDESKTOPCAMERAINUSE
  • CAMERA_EPOWERDOWN

camera_meta.h

Added the following function:

  • camera_meta_get_face_id()

Invocation framework


In addition to the listed share target items, users can now see large app icons (358 x 358 pixels) of share targets in the target selection menu. These suggested target app icons appear based on the user's recent selections.

For more information, see App integration.

Peripheral Discovery Library


Your app can use this API to receive notifications about the insertion or removal of peripheral devices. As well, your app can retrieve information about inserted peripherals.

For more information, see Peripheral Discovery Library.

Permissions


The following new permissions have been added:

  • Automatic Input Control (_sys_inject_events)
  • Control Notification Settings (access_notify_settings_control)
  • Gamepad (use_gamepad)
  • Phone Control (control_phone)
  • Run in Background (_sys_run_headless)
  • Screen Capture (use_camera_desktop)
  • User Contact Information (read_personally_identifiable_information)
  • Wi-Fi Connection (access_wifi_public)

Note that the run_when_backgrounded permission was previously called "Run in Background". This permission is now called "Run as Active Frame", and the _sys_run_headless permission is called "Run in Background".

For more information, see App permissions.

Scoreloop SDK


Default UI is available for 'Challenges' along with 'Favorite a game', 'Edit profile', 'Leaderboards', and 'Awards & Achievements'.

scui_client.h

Added the following functions:

  • SCUI_Client_NewWithCallback()
  • SCUI_Client_ShowAchievementsView()
  • SCUI_Client_ShowChallengeCreateView()
  • SCUI_Client_ShowChallengeSubmitView()
  • SCUI_Client_ShowChallengesView()
  • SCUI_Client_ShowFavoritingView()
  • SCUI_Client_ShowLeaderboardView()
  • SCUI_Client_ShowUserProfileView()

Screen Graphics Subsystem Library


screen.h

Added the display property SCREEN_PROPERTY_INTENSITY to support application-controlled brightness.

Added the window property SCREEN_PROPERTY_PERMISSIONS to support window permissions.

Added the following window permission masks:

  • SCREEN_PERMISSION_IRWIN
  • SCREEN_PERMISSION_IWWIN
  • SCREEN_PERMISSION_IXWIN
  • SCREEN_PERMISSION_IRTOP
  • SCREEN_PERMISSION_IWTOP
  • SCREEN_PERMISSION_IXTOP
  • SCREEN_PERMISSION_IRPID
  • SCREEN_PERMISSION_IWPID
  • SCREEN_PERMISSION_IXPID
  • SCREEN_PERMISSION_IRPGP
  • SCREEN_PERMISSION_IWPGP
  • SCREEN_PERMISSION_IXPGP
  • SCREEN_PERMISSION_IRUSR
  • SCREEN_PERMISSION_IWUSR
  • SCREEN_PERMISSION_IXUSR
  • SCREEN_PERMISSION_IRGRP
  • SCREEN_PERMISSION_IWGRP
  • SCREEN_PERMISSION_IXGRP
  • SCREEN_PERMISSION_IRAGP
  • SCREEN_PERMISSION_IWAGP
  • SCREEN_PERMISSION_IXAGP
  • SCREEN_PERMISSION_IROTH
  • SCREEN_PERMISSION_IWOTH
  • SCREEN_PERMISSION_IXOTH

VPN Extensions Library


The VPN Extensions Library lets you create extensions to the VPN service, each of which can be associated with a VPN adapter. You can use the functions in this library to perform tasks such as creating a VPN Extension context, adding a Key Agreement callback, and running the VPN service.

For more information, see VPN Extensions Library.

Wi-Fi Service Library


  • Wi-Fi hotspot aggregator capabilities
    • You can create hotspot aggregator applications that manage authentication to a Wi-Fi hotspot. The APIs are available in wifi_service.h

Cascades - New in this release

Cascades UI framework


Custom list item

We've added a new CustomListItem class that allows you to create custom list items that has the StandardListItem look. This class acts as the base class when creating new list items and can be used in a ListView. CustomListItem objects allow you to specify the type of content, but also have two optional features: highlights and dividers. A highlight determines what the list item looks like when it's selected, and is represented by the highlightAppearance property. You can use a divider to separate the list item from adjacent items in the list. A flag to indicate whether the divider should be shown is represented by the dividerVisible property. You can specify any Cascades control as the content, which appears in the body of the list item. The content is represented by the content property. For more information, check out the API reference.

Delegate

We're introducing a new API called Delegate along with properties delegate and deleteActivationPolicy. The Delegate class provides a generic delegate that instantiates an object when it is active, and deletes it when it's not active. A Delegate can be used on a Tab to let you manage how content is loaded. The Delegate class is similar to a ComponentDefinition, but provides object lifecycle management similar to ControlDelegate using the active flag. So, you could use Delegate class instead of ComponentDefinition. The TabDelegateActivationPolicy.Default toggles the active flag on selecting tabs. For more details on the flags, take a look at the TabDelegateActivationPolicy API reference.

Custom input for text areas

TextArea objects now allow for custom input through TextAreaInputMode::Custom. Custom input will ignore all key input that Cascades handles for you, and you can explicitly handle the key input in your app. All spell checking and features are disabled as well, but your app could implement its own integration with the Input Method Framework. For more information, take a look at the API reference.

Custom fonts

We're introducing a new API for using custom fonts in the text controls with the new FontFaceRule object in the TextStyleDefinition. With this object you can add an internal font family name for an external font. Currently we support TrueType font (TTF) and OpenType font (OTF) formats, and these font files are added as asset files similar to how you add image assets. For more information, take a look at the API reference.

Cascades platform APIs


Asynchronous data models

Need to access large amounts of external data? We've added an asynchronous data model (AsyncDataModel) to the BlackBerry 10 Native SDK to help. Large sets of data must be managed differently to avoid start-up delays, slow scrolling, and other indicators of poor performance. For more information, see the documentation or the API reference.

Invocation framework

There is new functionality in the invocation framework. We've added a new errorCode() function to InvokeReply, and added additional features to InvokeManager. You can now use the selectListItem() function in InvokeManager by passing the InvokeListCursorDirection::Type to replace the current list item with next or previous list item. For more information, take a look at the InvokeManager API reference. You can now invoke apps using active text, similar to a hyperlink. For more information, see Invoking apps using active text.

Maps

We've updated the Maps API to include new classes and new functionality for geographic shapes (GeoShape and GeoPolygon) and lines (GeoPolyline and Polyline). You can use MapView to display a map that the user can interact with. You can also display location-specific information including points of interest and locations using GeoLocation. You can drop pins for points of interest and show bubbles to present more details about a point of interest using Marker.

We've updated the Maps APIs.

Miracast cards

We've added Miracast card support to the BlackBerry 10 Native SDK. Miracast allows you to wirelessly display your app to compatible displays in up to 1080p video format and 5.1 surround sound format. A Miracast card can be invoked to discover and establish a connection to a nearby Miracast device. You can invoke the Miracast card in two modes: play on and show on. For more information, take a look at the Miracast card documentation.

Notification settings

You can now using the new Notification settings API to access and modify both global and application-specific settings. You can use this to access and modify device profile information. For more information, take a look at the API reference.

Personal information management (PIM)

We've added a new FileAttachment class that includes information about a file attachment, such as file path to the downloaded attachment on the file system, MIME type, and sender. We also now have an AttachmentFilter class that lets you filter lists of attachments based on key-value pairs. The Account class can now check if data is stored externally through the isExternalData() function. The AccountsChanged class now has getter and setter functions for connected accounts, invalidated accounts, synced accounts, and sync started accounts.

CalendarEvent objects can now get and set their original start time. CalendarService can serialize a calendar event as an ICalendar byte array through the eventToICalendarString() function, and also reply to an invitation with the replyWithMessageId() function. ContactsService can now convert/export/import contacts to VCards. The ICalendarData API can now get and set the body MIME type. The Message API can check if a message should be in the priority inbox through the isPriorityInbox() function. Lastly, the MessageService API has functions to correspond to the additional accounts and attachment APIs.

Screenshot

There is a new Screenshot API that allows your application to capture the contents of the display and save it to the camera roll. The captured image is saved to the camera roll (a sequentially numbered image available in the Pictures application, just like taking a picture with the camera). When capturing the display, you can save the image in any one of the formats specified by ScreenshotFormat.

WiFi direct

We've added a new WiFiDirect API that provides an entry point to accessing information about WiFiDirect devices, or establishing connections with those devices. For more information, see the API reference.

Cascades Builder


QML Preview

We've enhanced the stability and performance of QML Preview, and we've added support for Linux-based operating systems. Also, the rendering capabilities of QML Preview have been extended to provide rendering of more custom controls. With the introduction of API levels, QML Preview now has API level-specific preview per project, allowing you to see your UI depending on the API level of your customer.

C++ Support and Templates

The QML editor now recognizes and provides code completion support for custom components written in C++, including properties and functions. We've also updated the project and file templates to correspond to the updated SDK. You will also notice improved code completion, better hyperlinking to sources, and less 'unrecognized' markers.

An image of Tux

The 10.2 beta SDK now supports QML preview on Linux operating systems.

Code editor improvements

We've improved semantic validation and error checking. You now can specify API-baseline per project. There is a new whitelist feature and code completion displays more relevant proposals for you. Code completion is also faster, lighter, and has better matching. We have improved capabilities and options for auto-editing and formatting. We now have options to configure errors and warning levels. You can now preview your image assets and color definitions. There is also now a link to our online documentation from the in-line hover-help

BlackBerry Social Platform


Registration

You can suppress the progress dialog when your app registers with BBM to create a more seamless experience for the user by calling requestRegisterApplicationSilent(). When registration is complete, a system toast appears to the user, confirming that your app is connected to BBM. A new registration state, BlockedEnterprisePerimeter, is available to indicate that registration with the BBM social platform is blocked because your app is installed in the Work perimeter. To connect to BBM, your app must be installed in the Personal perimeter.

User settings

You can retrieve the version of BBM that is running on a user's device by calling bbmVersion(). You can then determine which version of the BlackBerry OS is running on the device, for example, Blackberry 7 and earlier, or BlackBerry 10. You can determine whether a user has completed the setup of BBM on their device by signing in with their BlackBerry ID (Setup > BlackBerry Messenger) by calling isBbmSetup().

Other features


Flurry analytics

Flurry, the industry-leading analytics service, is now available for BlackBerry 10 apps. Get access to real-time data about how your apps are used. Find out about your customers; who they are, where they live, and what devices they use. You can track anything relevant to your app such as when a consumer makes a purchase, completes a level, or uses a key feature. Here's where you can find more information.

Signal-slot connections

We have a new recommendation regarding your signal and slot connections. The QObject::connect() functions returns a Boolean value, and if false is returned, the signal and slot function are not connected. On failure, a warning is sent to the device log, but the application continues by default. To see specific recommendations for how you should deal with this situation, take a look at the signal-slot connections section of the upgrading guide.

Back to Top

Core - Changes in this release

Changes to signing your apps


In this release, the way that you sign your apps (to prepare them for distribution in the BlackBerry World storefront) has changed. Previously, you used code signing keys that you obtained from BlackBerry to sign your apps. Now, you use a BlackBerry ID token that's associated with your BlackBerry ID.

To learn how to sign your apps using this new process, see Signing apps.

Bluetooth Library


btgatt.h

Deprecated the following definitions:

  • GATT_TIME_INFINITY
  • GATT_UUID_STRING_LENGTH
  • GATT_CLIENT_CHAR_CFG_UUID
  • GATT_CHARACTERISTIC_PROP_BROADCAST
  • GATT_CHARACTERISTIC_PROP_READ
  • GATT_CHARACTERISTIC_PROP_WRITE_NORESP
  • GATT_CHARACTERISTIC_PROP_WRITE
  • GATT_CHARACTERISTIC_PROP_NOTIFY
  • GATT_CHARACTERISTIC_PROP_INDICATE
  • GATT_CHARACTERISTIC_PROP_WRITE_SIGNED
  • GATT_CHARACTERISTIC_PROP_EXT_PROP

btdevice.h

If your app calls bt_ldev_get_address(), in the Application tab of the bar-descriptor.xml file of your app, you must enable the read_device_identifying_information permission. This requirement will be enforced in a future release. When it is enforced, any calls to bt_ldev_get_address() without the required permission will fail with an error message.

Camera Library


camera_api.h

The following functions and data type were incorrectly included in the header file and should not be used.

  • camera_get_supported_video_vf_modes()
  • camera_get_video_vf_mode()
  • camera_set_video_vf_mode()
  • camera_video_vf_modes_t

Geofencing Library


The default monitoring mode for regions is now transient. Previously, the default monitoring mode was permanent.

The following functions were removed and replaced by new functions:

  • geomonitor_region_get_stop_monitoring_event(), which replaces geomonitor_region_get_delete_on_event()
  • geomonitor_region_get_foreground_mode(), which replaces geomonitor_region_get_stop_monitoring_event()
  • geomonitor_region_get_offline_notification_target(), which replaces geomonitor_region_get_notification_invoke_target() and geomonitor_region_get_notification_message()
  • geomonitor_region_set_delete_on_event(), which replaces geomonitor_region_set_stop_monitoring_event()
  • geomonitor_region_set_foreground_mode(), which replaces geomonitor_region_set_monitoring_mode()
  • geomonitor_region_set_offline_notification_target(), which replaces geomonitor_region_set_notification_invoke_target() and geomonitor_region_set_notification_message()

Added the following data type and functions:

  • geomonitor_monitoring_mode_t
  • geomonitor_region_get_monitoring_mode()
  • geomonitor_region_get_notification_invoke_target()
  • geomonitor_region_get_notification_message()
  • geomonitor_region_get_stop_monitoring_event()
  • geomonitor_region_set_monitoring_mode()
  • geomonitor_region_set_notification_invoke_target()
  • geomonitor_region_set_notification_message()
  • geomonitor_region_set_stop_monitoring_event()

Scoreloop SDK


scui_client.h

Deprecated the following functions:

  • SCUI_Client_New()
  • SCUI_Client_ShowFavoriteGamesView()

Cascades - Changes in this release

 

This is an image stating upgrading to BlackBerry 10.1 beta Native SDK.

We also have an upgrade guide available that can help you transition your apps to the 10.2 Gold release version for BlackBerry 10. Check out the upgrade guide here.

 

Behavior changes

Payment Service

The Payment Service has been updated to use sheets (instead of dialog boxes) for the purchase flow of digital goods and applications. To minimize the number of requests to the Payment Service, requestExistingPurchases(false) now requests existing purchases from the BlackBerry World client cache. If the client cache is invalid, existing purchases are retrieved from the BlackBerry World server.

For more information about using the Payment Service, see Payment Service.

Sheet behaviour

Cards and sheets now slide in from the right side of the screen. For more information, see the UI guidelines for Cards and Sheets.

For more information about creating cards, see Cards.

Bluetooth

If your app makes calls to QBluetoothLocalDevice::address(), you must enable the read_device_identifying_information permission in your app’s bar-descriptor.xml file. The requirement for this permission will be enforced in a future release. When it is enforced, any calls to QBluetoothLocalDevice::address() without the required permission enabled will fail with an error message.

For more information about setting permissions, see App permissions.

Back to Top

Core - Fixed in this release

BlackBerry Platform Services


PR: 337891 JI: 391372

Using the Screen capture API, the function screencapture_grab() failed with the error message:
error code 9 - CAMERA_EBADF
error message: Failed to open screencapture control PPS object

Documentation


PR: 342618 JI: 394100

The complete set of offline help documentation was not available in the 10.2 beta version of the QNX Momentics IDE. It included only Using the QNX Momentics IDE. You could access the latest version of the online documentation on the BlackBerry Native SDK Documentation site.

Headless apps


PR: - JI: 469847

If you sent port-directed SMS messages to an invocation target that was a headless app, the Chat service invoked the target only once and a port-directed SMS trigger was emitted only once, regardless of the number of port-directed messages that were sent.

PR: - JI: 469844

If you loaded a headless app on a device, you (correctly) received a System Started trigger. Then, if you restarted the device, you (incorrectly) didn't receive the System Started trigger again.

PR: - JI: 460515

You could not invoke a service from a headless app.

PR: - JI: 458228

When a headless app was invoked, and that headless app was not currently running, the headless app launched but was sometimes terminated due to an app connection timeout.

Installation


PR: - JI: 420257

In the QNX Momentics IDE, installing more than one API Level at the same time would result in an error.

PR: 348970 JI: 403373

When using the Darwin (Apple) command line, the DYLD_LIBRARY_PATH environment variable was not set from the environment script. This caused some compiles or commands to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.

PR: 348781 JI: 403370

When using the DOS command line, Windows environment variables were not set with forward slashes "/". This caused some compiles to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.

PR: 345080 JI: 394155

When using the DOS or Linux command line, environment variables were not set to use the packaged JRE from the environment batch file. This could sometimes cause a command that uses Java to fail.

PR: 343485 JI: 402268

Installing the Native SDK into the same folder as a previous version was not supported (see also PR: 239960, JI: 402307, and JI: 402280).

PR: 339022 JI: 402297

When you installed the QNX Momentics IDE, you are now correctly unable to select a folder name that contains spaces, which would prevent your sources from compiling properly.

PR: 327200 JI: 393988

If you canceled the SDK installation and did not have an SDK, you could not create a BlackBerry project. It is now clearer that the required SDK is missing and how to resolve the issue from the IDE.

PR: 144987 JI: 402249

When you uninstalled the Native SDK on Mac or Linux, you might have received a warning that some files were not removed. This could be ignored and you could manually delete the remaining files. Mac now uses a drag-and-drop installation.

Invocation framework


PR: 338399
PR: 337813
JI: 380460
JI: 377399

An unbound invocation query may have caused some invocation targets to appear twice in the menu. (See also 345183)

QNX Momentics IDE


PR: 349604 JI: 394341

On Mac OSX, launching the BlackBerry 10 Simulator from within the IDE may have caused Momentics to crash.

PR: 347053 JI: 394236

Linux command line users needed to use the system's Java runtime or add an executable bit on features/com.qnx.tools.jre.linux_*/jre/bin and add this to their PATH.

PR: 344313 JI: 394138

To display the source code navigator, on the Window menu, you needed to click Show Advanced Toolbars.

PR: 337857 JI: 394062

If you already had a simulator installed, and the device manager in the QNX Momentics IDE did not recognize it, you needed to manually pair it in the IDE.

PR: 302984 JI: 393914

On Mac OS, running the bbndk-env.sh script after running the mkbuild script produced an error.

PR: - JI: 418611

If you uninstalled or aborted the installation of the BlackBerry 10 simulator from within the IDE, it no longer appeared in the Device Manager list or was available to download from within the IDE.

Simulator


PR: 344761 JI: 394147

On Mac OS, the simulator controller could not be launched from the simulator installation location.

Cascades - Fixed issues

Cascades UI framework


MKS: 7309986 JI: 381747

When you were using a ScrollView, if the scrollMode was set to Both or Horizontal, the UI element extended to past the screen and was unusable.

MKS: 7293439 JI: 381716

Sometimes when you were using a WebView control, blank content displayed temporarily.

MKS: 7137262 JI: 381629

If you swiped at the exact distance of the scroll/peek threshold, a peek was detected instead of a scroll.

MKS: 7133787 JI: 151039

If you typed some text in a TextField or TextArea and simultaneously used two fingers to select text in another TextField or TextArea, the focus may have remained on the original TextField or TextArea, which produced a blinking text cursor in both.

MKS: 6985266 JI: 150554

The logs for a Cascades app may have contained irrelevant entries.

MKS: 6892803 JI: 268222

When the local storage file system on your device was filled to maximum capacity, the device may have became partially unresponsive.

MKS: 6788842 JI: 149919

You might have had trouble highlighting text or copying and pasting text on your device.

MKS: 6778145 JI: 149901

When using a TextField, you couldn't invoke the NumericPassword keyboard.

MKS: 6764259 JI: 381341

Asset resolution when using QRC-embedded QML files or resources may not have worked as expected. This issue related to 6298916.

MKS: 6627472 JI: 381448

In the Phone app, if you set a new Call Forwarding number, in the drop down list, the phone number might have had a check mark beside it.

MKS: 3139275 JI: 145056

Default-sized TextField controls in Container controls with LeftToRight layouts could push some Label controls out of view by exceeding the bounds of the Container.

MKS: - JI: 477099

The HighlightAppearance class header file was missing, and it couldn't be directly included.

MKS: - JI: 462506

When there were six or more tabs open in the browser, the browser could terminate unexpectedly.

MKS: - JI: 461792

Sometimes small gaps were displayed between emails in the BlackBerry Hub.

MKS: - JI: 429889

In the universal search, some characters in right-to-left languages were overlapped by an X.

MKS: - JI: 149352

Opening text documents that are attached to emails was using more memory than intended.

MKS: - JI: 146966

A TextField control did not have a mechanism for setting whether or not the TextField was editable.

MKS: 7141717 JI: 381633

In the StarshipSettings sample app, if you drag a slider handle from one end of the slider to the other and release it, the tooltip for the slider did not disappear as expected.

MKS: 6812828 JI: 149985

When an InvokeQuery object was initialized, it may have been locked and calling updateQuery() would not update the query.

MKS: 6687368 JI: 149573

The ImageSource property of an ImageView did not respond to changes in bound properties.

Cascades platform APIs


MKS: 7304279 JI: 377476

If you called the InvokeUpdateTargetFiltersRequest.updateTargetFilters() function, a finished() signal was not emitted.

MKS: - JI: 458228

Headless apps sometimes terminated due to an app connection timeout.

MKS: - JI: 460515

Headless apps couldn't invoke services using the invocation framework.

MKS: - JI: 469844

If you were running a headless app, the bb.action.system.STARTED invoke trigger was not sent after a device restart.

MKS: - JI: 469847

Headless apps didn't receive SMS triggers from the invocation framework.

MKS: 7344601 JI: 381840

The BarcodeDetectorVisuals class was missing an API reference. Also, the return value of detected() in the BarcodeDetector class was just void.

MKS: 7322636 JI: 390733

When a DisplayInfo object was set to the primary display, then the display name was obtained, sometimes the display name returned as an empty string.

MKS: 7324124 JI: 403426

When you were using the BlackBerry 10 Simulator in Z10 mode, the isPhysicalKeyboardDevice() function returned true, even though it should have returned false.

MKS: 7310260 JI: 395891

In the SpellChecker API, the checkWord() function sometimes returned true, even if the word was misspelled. Invoking word suggestions didn't return any results.

MKS: 7307661 JI: 403361

The PaymentErrorCode class sometimes wouldn't work properly in QML, and cited an error at run-time.

MKS: 7307284 JI: 403360

When using the PurchaseReply class, the finished() signal didn't return true, even after the purchase was made and the onPurchaseFinished() slot function was run.

MKS: 7337772 JI: 403370

When using the DOS command line, Windows environment variables are not set with forward slashes “/”. This was causing some compiles to fail. If you installed additional targets, you had to modify the target scripts in a similar manner.

MKS: 7302276 JI: 384752

When you tried to pair using Bluetooth, there was a potential risk for out-of-band (OOB) pairing to fail.

MKS: 7300047 JI: 377462

When an SMS URI was typed, "Call" was an option in the context menu.

MKS: 7297344 JI: 377457

When a parent app invoked a Camera card, then the parent app disabled the camera use, the camera was still usable.

MKS: 7279158 JI: 384560

When you try to create a Bluetooth connection, there was a potential risk for a low energy (LE) connection to fail.

MKS: 7244850 JI: 211495

When a DisplayInfo object was set to the primary display, then the display name was obtained, sometimes the display name didn't appear as expected.

MKS: 7221884 JI: 380460

An unbound invocation query may have caused some invocation targets to appear twice in the menu. This issue also relates to 7215861 and 7301535.

MKS: 7216847 JI: 391372

Using the Screenshot API, the capture() function didn't display a permission requirement message, and failed with the error citing permission denied.

MKS: 7173774 JI: 239539

Sometimes when you purchased non-consumable items more than once, no error message was displayed, even if the payment didn't go through.

MKS: 7092837 JI: 384067

In the SdCardInfo class, the state() and activity() functions didn't return proper values when a valid SD card was inserted, instead an unknown state was returned.

MKS: 7077233 JI: 372499

Sometimes when signing a BAR file, the content of the manifest .mf file and your Invoke-Target-Filter URI was altered, and your application failed to deploy properly.

MKS: 6989566 JI: -

When you had an app with paid digital items listed on the BlackBerry World storefront, each time you called the requestPrice() function, a response was required before sending the next request. Calling requestPrice() multiple times without waiting for a response would result in a PriceReply error.

MKS: 6776604 JI: 239425

If there are no list items in the SystemListDialog class, the confirmButton function couldn't be enabled.

MKS: 6644302 JI: 196351

When you used the HardwareInfo class to query for device information, the modelName() function returned the incorrect model name.

MKS: 6480942 JI: 377105

If an application has an invoke filter containing an asterisk (*), the application failed to install, showing a failure 884.

MKS: 6376562 JI: 239261

The API documentation for the Application.pooling() signal needed improvement. The app needed to be closed to trigger the pooling feature and pooling() signal. In the pooling() slot function, the handler, or somewhere after the pooling() signal was emitted, the app must call poolingCompleted(). If not, the app would be terminated in the normal way. In order to properly have pooling working, the app must have been deployed using the 'BlackBerry-deploy' command line program. Pooling would not work if you ran your app from the Momentics IDE for BlackBerry using the 'Run as' option.

MKS: 6375594 JI: 403297

The ProcessState API documentation didn't contain enough information on the difference between background and stopping Type enumerations.

MKS: 6251593 JI: 381331

The API reference for resetEmoticonsEnabled() of the SystemCredentialsPrompt class said the function resets the main text of the dialog box to QString::null. However, the function actually reset the emoticonsEnabled property back to the default value of false.

MKS: 5969845 JI: 376907

If invocation requests were pending, sometimes peeking and closing a card didn't work.

MKS: - JI: 479013

If your app was in the enterprise space, the sms trigger did not invoke the app because the default is to invoke the app in the personal perimeter. Since the app is not there, nothing was invoked.

MKS: - JI: 482561

Currently, when implementing a headless app, you can invoke notification dialogs using the Notification dialog functions of the Dialog API. Global dialogs are not encouraged as they are disruptive to the user experience.

MKS: - JI: 475866

If you didn't register your signing key and your PlayBook debug token with the same clientID, an error would be thrown when trying to link your BlackBerry ID account with a Signing Authority account.

MKS: - JI: 461484

Headless apps can display UI messages.

MKS: - JI: 461671

Invoked headless apps were displaying an incorrect StartUpMode. The value is set to ApplicationStartupMode.

MKS: - JI: 446246

If you changed the card orientation several times, your app might crash.

MKS: - JI: 457641

If you peeked into another window, which brings up the previous and next cards, the application could at times crash.

MKS: - JI: 439755

The checkWord() and suggestion() functions of SpellChecker sometimes returned false with correctly spelled words due to timing out.

MKS: 6862321 JI: 138301

Sometimes when texting two numbers separated by a comma, the message was only sent to the first number.

MKS: - JI: 328831

You could not build a project from the command line on a Mac.

Cascades Builder


MKS: 7329706 JI: 394256

QML Preview may have failed to render some unicode characters when using older API baselines.

MKS: 7308888 JI: 394189

When you were profiling QML, the move forward and backward in the call stack didn't allow you to traverse the call stack.

MKS: 7304211 JI: 394164

Sometimes when you imported a project, then immediately ran it, the build failed citing a missing config.pri file.

MKS: 7300034 JI: 394152

When you dragged and dropped a custom component into QML, the custom component was always placed as the last control, even if you dropped the component above other controls.

MKS: 7298803 JI: 394148

Depending on the complexity of the QML and the performance of your computer, QML Preview may have generated a timeout message.

MKS: 7296448 JI: 394139

Sometimes custom component property references were not correctly displayed in QML Preview.

MKS: 7234431 JI: 394081

When using QML Preview on a Mac for projects using pre-10.2 API baseline, the qmlpreview_jni process may have continued running even after the file was closed.

MKS: 6923772 JI: 416870

If your project contained QML assets stored outside the assets folder, Cascades Builder may not have been able to correctly discover them, which generated error and warning markers within the editor.

Cascades Exporter plug-in for Adobe Photoshop


MKS: 6469788 JI: 393831

Using Cascades Exporter with Windows 8 and CS6 may have failed when exporting text layers.

BBM Social platform


MKS: 6592081 JI: 389390

Images that use transparency might not appear correctly in the user's list of BBM applications.

Command line tools


MKS: 7340919 JI: 403373

When using the Apple Darwin command line tool, the DYLD_LIBRARY_PATH environment variable was not set from the environment script. This caused some compiles to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.

MKS: 7324203 JI: 394236

Linux command line users needed to use the system's java runtime or add an executable bit on features/com.qnx.tools.jre.linux_*/jre/bin and add this to their PATH.

MKS: 7300760 JI: 394155

When using the DOS and Linux command line, environment variables were not set to use the packaged JRE from the environment batch file. This sometimes caused any command that uses Java to fail.

Momentics IDE for BlackBerry


MKS: - JI: 420257

In the Momentics IDE, installing more than one API Level at the same time would result in an error.

MKS: - JI: 418611

If you uninstalled or aborted the installation of the BlackBerry 10 simulator from within the IDE, it would no longer appear in the Device Manager list or be available to download from within the IDE.

MKS: 7346462 JI: 394341

On Mac OSX, launching the BlackBerry 10 Simulator from within the IDE may have caused Momentics to crash.

Back to Top

Core - Known limitations

BBM Social Platform

  • Apps installed in the Work perimeter cannot access the BBM Social Platform. To connect to BBM, your app must be installed in the Personal perimeter.
  • When you retrieve the version number of the BBM Social Platform library that is running on a contact's device, the value returned might be unreliable if the device is running BlackBerry 10 OS version 10.2 or later.

BlackBerry ID and Signing Authority linking

  • If you do not register your signing key and your BlackBerry PlayBook debug token with the same clientID, an error will be thrown when you try to link your BlackBerry ID account with a Signing Authority account. A fix will be available in the next release.

FreeType

  • Applications using FreeType must add the following include path: $QNX_TARGET/usr/include/freetype2

Installation

  • The Native SDK does not support Shared Install.
  • When you execute bbndk.sh to launch the Native SDK on Ubuntu 11.04 32-bit, you will receive an error:
    "QNX Compiler Configuration Error". Run the ./qde app instead.
  • By default, the Native SDK installer creates the installation folder on Windows systems at the root of the C drive in C:\bbndk. During installation, you need to provide the administrative username and password or, if you are the administrator, accept that the SDK is installing on the C drive.
  • When installing and uninstalling the Native SDK on a 64-bit Linux host computer, you may see an error regarding a missing libc.so.6 file. You can disregard this error message.
  • On Mac computers, you may encounter an issue with incorrect permissions on the Native SDK installer executable. To launch the installation program, you will first need to manually change the permissions for the installer.
  • To run the installer and the IDE on Ubuntu 64-bit, you need to install the 32-bit libraries: sudo apt-get install ia32-libs. During the installation, answer yes to all the questions.

Multimedia

  • If an app plays a media stream that's encrypted, the app won't allow video playback if an HDMI display is connected, due to security restrictions. This limitation will be resolved in a subsequent release.
  • There is a slight delay between tracks played as part of a playlist (approximately 0.5 seconds), even when the playlist includes only one track that is repeating.

OpenAL

  • The OpenAL 1.1 Specification and Reference incorrectly states that the function alcCloseDevice() will fail if the device's contexts and buffers have not been destroyed. alcCloseDevice() actually destroys any contexts and buffers still associated with the device.
  • The function alcGetIntegerv() does not throw an error when retrieving ALC_MAJOR_VERSION and passing an invalid device pointer.
  • The function alcGetString(device, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER) throws an error when invoked after the device has been closed. It should return the default device and ignore the device parameter.
  • The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alcGetString(), "Specifying NULL for deviceHandle when asking for ALC_EXTENSIONS will generate an ALC_INVALID_DEVICE error." In fact, no error is generated.
  • The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alBufferData() that, "An invalid size will result in an AL_INVALID_VALUE error." In fact, calling alBufferData() with an invalid size does not cause the INVALID_VALUE error.
  • When the function alcMakeContextCurrent() is called with an uninitialized ALCcontext pointer, it correctly returns ALC_FALSE, but does not generate an ALC_INVALID_CONTEXT error.
  • The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly lists AL_INVALID_VALUE as a possible error returned by the functions alGenBuffers() and alGenSources() when the array is not large enough to hold the number of items requested. In fact, no error is generated.
  • The function alSource3f() does not throw an AL_INVALID_VALUE error when invalid numbers are passed as parameters. Apps should perform their own validity checking.
  • The function alSourcef() throws an AL_INVALID_VALUE error for valid values when using AL_CONE_INNER_ANGLE and AL_CONE_OUTER_ANGLE.
  • No error is thrown when the function alutLoadWAVFile() is called without a current context.
  • The function alutGetError() does not return ALUT_ERROR_ALC_ERROR_ON_ENTRY when there was already an ALC error on entry to alutLoadMemoryFromFileImage().
  • In the OpenAL Programmers Guide, AL_DATA is incorrectly documented as a valid buffer property. An attempt to retrieve this property through alGetBufferi() and alGetBufferiv() will result in an AL_INVALID_ENUM error.
  • The deprecated function alutLoadWAVMemory() does not return the expected values.
  • The function alGetListenerfv() does not generate an error when called with an invalid value. Apps should perform their own validity checking.
  • The following attributes are set by the device, and cannot be altered using the attribute list of the function alcCreateContext(): ALC_FREQUENCY, ALC_REFRESH, ALC_SYNC, ALC_MONO_SOURCES, ALC_STEREO_SOURCES, ALC_MAX_AUXILIARY_SEN.
  • The OpenAL 1.1 Specification and Reference incorrectly states that the function alGetEnumValue() sets the error code AL_INVALID_VALUE if the specified enumeration cannot be found. In fact, this error is not set when an invalid enumeration value is specified.
  • The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly states that the functions alcSuspendContext() and alcProcessContext() produce the error ALC_INVALID_CONTEXT when called with a null or destroyed context. However, no error is generated.
  • The function alListener3f() does not generate an error when called with a NULL value for the AL_VELOCITY attribute. Apps should perform their own validity checking.
  • The function ALCGetProcAddress() does not return addresses for the specified context extension functions, even for valid functions. It always returns NULL.
  • The function alSourceQueueBuffers() queues invalid buffers. If you pass a NULL buffer to this function, it will queue the buffer and not raise an error, even though the buffer is not valid.

OpenSSL

BlackBerry 10 uses OpenSSL 1.0.1, with the following deviations from the standard implementation:

  • TLSv1.2 is not supported.
  • TLSv1.1 support is disabled by default.
  • The heartbeat TLS extension has been disabled. This extension is described by RFC 6520, which is located at http://www.rfc-editor.org/rfc/rfc6520.txt.
  • The list of default SSL/TLS/DTLS ciphersuites has been altered.
  • Applications using SSL/TLS/DTLS connections to get a default set of ciphersuites unless they explicitly specify which ciphersuites they want to support using SSL_CTX_set_cipher_list() or SSL_set_cipher_list().
  • The default set of ciphersuites has been changed to "ALL:!aNULL:!eNULL:!SRP:!SSLv2" which eliminates the SRP ciphersuites from the standard default set of ciphersuites provided by OpenSSL 1.0.1.
  • SSL_CTX_new(), which is used to create a new SSL_CTX object for TLS/SSL/DTLS negotiations, has been altered to disable TLSv1.1 support by automatically setting the option SSL_OP_NO_TLSv1_1.
  • TLSv1.1 will be disabled by default when using SSLv23_method(), SSLv23_server_method(), or SSLv23_client_method(). Applications that need TLSv1.1 support can clear the option by calling SSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1_1) or can use one of the following TLSv1.1-only methods: TLSv1_1_method(), TLSv1_1_server_method(), or TLSv1_1_client_method().

Payment Service

When you use the BlackBerry 10 Device Simulator to test your apps, your apps cannot communicate with the BlackBerry World servers to test certain Payment Service features. To test Payment Service features on the simulator, you should use Local Mode testing.

If you need to test your apps by interacting with the BlackBerry World servers, you need to run the app on a physical device and use a BlackBerry ID in sandbox mode. For more information about testing apps that use the Payment Service, see Testing in-app purchases.

QNX Momentics IDE

  • It is possible that the debugger may take 5-10 minutes to launch in certain circumstances.
  • When you use the Memory Analysis tool, you may see an empty graph with the warning "No graphical input". This is by design for security reasons and this information is unsupported for BlackBerry 10 OS targets.
  • Standard makefile projects cannot be named "makefile". Use a different name for your project.
  • Memory leaks are only reported when an application exits normally. If it is killed or crashes, memory leaks will not be reported. To report memory leaks in this case, the API should be used.

Scoreloop

Social networks are not supported in this Scoreloop release. APIs related to the following classes are unsupported:

  • SC_Message (Partial)
  • SC_Message_Controller (Partial)
  • SC_SocialController (Partial)
  • SC_SocialNetwork (Partial)

For more information on the Scoreloop SDK, see the following resources:

Cascades - Known limitations

Using older drivers with QML preview

Any drivers that are more than 12 months old are unsupported. Using unsupported drivers can lead to issues with rendering, such as, complete disabling of the QML preview feature. The user will also be notified about this situation by a dialog box within the QNX Momentics IDE for BlackBerry.
Workaround: Update to the latest drivers. This issue might occur even with newer graphics cards and the latest drivers. In this case, you should report this issue to BlackBerry developer support with as much detail as possible. You can report to the support community forums. For more information, check out the QML preview troubleshooting documentation.

Viewers in the invocation framework

Using the invocation framework, viewer-related classes (for example, InvokeViewerMessage and InvokeViewerRequest) and functions have been deprecated. The viewer-related classes and functions have been replaced by Card classes and functions. For more information on the Cards API, see the Cards documentation.

QRC-based resources

If you are using QRC to improve performance in your apps, the new asset selection tool may affect your apps. If asset selection is used, an index file is generated automatically. However, this index file does not include contents that are only included in the QRC binary file. Instead, it lists only the files that reside in the assets directory in your project.
Workaround: Place a copy of QRC-compiled assets in your assets directory. The tool will then include these assets in the index file. When the device loads the app, the appropriate files in the binary are still used and the app continues to benefit from the performance gain of QRC.

BBM Social Platform

Apps installed in the Work perimeter cannot access the BBM social platform. To connect to BBM, your app must be installed in the Personal perimeter.

When you retrieve the version number of the BBM Social Platform library that is running on a contact's device, the value returned might be unreliable if the device is running BlackBerry 10 OS version 10.2 or later.

Back to Top

Core - Known issues

Active Frames


PR: - JI: 477424

For this release of the BlackBerry 10 Native SDK and the BlackBerry 10 OS, the size of Active Frames is 310 x 396 for devices with a 720 x 1280 screen resolution. In the future, and for future devices with this screen resolution, the size of Active Frames will be 319 x 437. It is recommended that you create assets and text for Active Frames that support the 319 x 437 size. This may cause your Active Frame to look distorted when developing for the 10.2.0.1443 release and earlier but it will appear as expected for future releases and devices.

BBM Social Platform


PR: 261200
PR: 218238
JI: 389356
JI: 389093

When the Connect to BBM permission (Settings > Security and Privacy > Application Permissions) is toggled from enabled to disabled or from disabled to enabled, the registration and permission states are not updated.
Workaround: Restart the app if permissions have been modified.

Documentation


PR: - JI: -

The documentation that is embedded in the library header files for the following APIs may not be the most recent:

For the most up-to-date documentation, refer to the online documentation for each library.

PR: - JI: 492681

In the Camera API Library offline documentation, the following functions and data type should not have been included:

  • camera_get_supported_video_vf_modes()
  • camera_get_video_vf_mode()
  • camera_set_video_vf_mode()
  • camera_video_vf_modes_t

PR: - JI: -

We are hard at work creating an awesome UI experience for you! While we are doing this, some references to the BlackBerry 10 UI, including screenshots, may not reflect what you see in the current software.

PR: - JI: -

In previous releases, the most recent version of the BlackBerry Platform Services library (libbps) was bundled with the Native SDK. This version was newer than the version on the target OS. To ensure the correct BPS library version was used by applications at run-time, projects in the Native SDK 1.0 would:
- Use BPS headers from the $QNX_TARGET/../target-override location for compilation,
- Link the libbps.so from the $QNX_TARGET/../target-override location to generate the application executable, and
- Package the libbps.so from the $QNX_TARGET/../target-override location in the BAR.

PR: - JI: -

As of the Native SDK 2.0.0 release, BPS no longer resides in the target-override location. The BlackBerry 10 OS and BlackBerry 10 Native SDK versions of this library are in sync. If you have applications targeting BlackBerry 10 that you no longer want to support on PlayBook 1.0.x, you should remove the libbps.so.1 asset from bar-descriptor.xml and target the BlackBerry 10 version of the Native SDK. To verify, select the QNX page in the project properties dialog. Otherwise, packaging of the BAR file will fail because it will not be able to find the libbps.so file to include in the BAR.

Headless applications


PR: - JI: 482561

Currently, when implementing a headless app, you can invoke notification dialogs using the Notification dialog functions of the Dialog API. Global dialogs are not encouraged as they are disruptive to the user experience. This will be fixed in an upcoming release.

PR: - JI: 479013

If your app is in the enterprise perimeter, the sms trigger does not invoke the app because the default is to invoke the app in the personal perimeter. Since the app is not there, nothing gets invoked.

PR: - JI: 478856

Applications installed in the enterprise perimeter can’t be invoked by the Geomonitor service. Invocation defaults to the personal perimeter and not enterprise.

PR: - JI: 461671

When a headless app is invoked, the ApplicationStartUpMode is erroneously listed as LaunchApplication.

PR: - JI: 461658

Currently, the category type for headless apps is incorrectly returned as "service". In the future, the correct type will be returned.

PR: - JI: 461484

Headless apps are erroneously able to post windows, window groups, and dialog requests, which make them non-headless and display a UI.

Installation


PR: 346256 JI: 394200

When you perform a software update, you must accept the security warning about installing unsigned software, and continue the installation.

PR: 339019 JI: 402296

When installing on Windows XP, you must specify a different installation location, instead of using the default location. The folder name must not contain spaces.

PR: 261783 JI: 402276

When you run the BlackBerry Native SDK installer on Windows 8, you cannot create a shortcut in the Start menu.
Workaround: You can use options in the installer to create shortcuts on the Desktop and the Quick Launch bar.

PR: 115276 JI: 402240

On Linux systems, if the launch command contains "..", the Native SDK installer fails.

PR: 110605 JI: 402236

You might get a warning after uninstalling the Native SDK that some directories couldn't be removed. This can be ignored.

Invocation framework


PR: 345225 JI: 389904

When reading a URI tag that contains ‘pin’, the BBM application doesn't handle the content of the tag, but the Smart Tags application does and invokes the URI.

OpenAL


PR: - JI: 403249

When using OpenAL to play sound on the device and an HDMI cable is plugged in, the sound does not transfer on to the connected device.

PR: 112769 JI: 403231

You cannot create two contexts with different attributes by calling alcCreateContext(). Errors are produced after attempting to create the second context, you can no longer call alcOpenDevice(), and sound is no longer playable in other OpenAL apps.

QNX Momentics IDE


PR: - JI: 495678

If you have an old workspace with projects that refer to an API Level that is no longer installed and there are no other API Levels installed, you will get a ‘string index out of range’ error when you try to build your project.
Workaround: Install an API Level and restart the QNX Momentics IDE.

PR: - JI: 493093

In the QNX Momentics IDE, if you open a new workbench window using Window > New Window and then close the original window, the new main toolbar is missing even if you restart the QNX Momentics IDE.
Workaround: In your workspace, remove the file .metadata/.plugins/org.eclipse.e4.workbench/workbench.xml.

PR: - JI: 481010

The application binary interfaces for the Dinkum C++ and GNU C++ libraries are incompatible. If you link an app against both libraries, you'll get a segmentation fault.

PR: - JI: 480112

In the 10.1 version of the IDE, if you clear the check box Update IDE while installing the 10.2 SDK, you must update the IDE separately by clicking Help > Check for Updates. For compatibility, the 10.2 version of the SDK requires the 10.2 version of the IDE.

PR: - JI: 470689

If you have an OS version on your device that is newer than 10.2.0.1157 and, while running the debugger against your installed OS build, the debugger is not performing as expected, then you may have a mismatch with your runtime. You need to make sure the matching runtime is used instead of the API level.
Workaround:

  1. Run the debugger.
  2. At the prompt to download a new runtime, click Yes.
  3. When the runtime is downloaded, exit the QNX Momentics IDE.
  4. Go to the folder where you installed the NDK.
  5. Copy the runtime_10_2_0_xxxx folder to runtime_10_2_0_xxxx+2. For example, runtime_10_2_0_1443 becomes runtime_10_2_0_1445.
  6. In the runtime_10_2_0_xxxx+2 folder, edit the runtime.properties file to change the version=10.2.0.xxxx to version=10.2.0.xxxx+2. For example, version=10.2.0.1443 becomes version=10.2.0.1445.
  7. Restart the QNX Momentics IDE.
  8. The correct runtime is detected and set for your installed OS build.

PR: - JI: -

In the bar-descriptor file, the <action> element used in previous versions of the Native SDK has been changed to be used with the Invocation Framework. The <permission> element has been reinstated for use to control permissions for an application. If you need to add permissions to your <action> application, you must change it to use the <permission> element. For more information, see The application descriptor file DTD.

PR: - JI: 469900

On Linux, you cannot open the controller for the BlackBerry 10 Device Simulator through the Simulators tab in the Device Manager screen, even when the matching simulator for the Native SDK is installed, paired, and launched properly.
Workaround: Launch the controller manually from <ide_install_folder>/simulator_x_x_x_x/controllers/controller.

PR: - JI: 465158

If you create a project using the 10.1 version of the Native SDK and specify that the project should use the 10.1 API level, and then update the IDE to the 10.2 version and install the 10.2 API level, project-specific settings automatically switch to use the new 10.2 API level.
Workaround: Manually change the API level of the project back to 10.1.

PR: - JI: 464363

On Linux, if you're using the INSTALL_DESCRIPTOR_LOCATION, install the 10.0 or 10.1 version of the IDE, and then check for updates using Help > Check for Updates, you receive an error stating that the update site can't be reached.
Workaround: Click Help > Install API Level, which parses the install_descriptor for information. Then, close the API Level Manager without performing any actions and check for updates again.

PR: - JI: 394085

On Windows XP, if you install the Native SDK as an administrator using the default installation settings, and then log on as a non-administrator and start the IDE, you receive an error indicating that you cannot access the Native SDK.

PR: - JI: 393847
JI: 332130

When you debug C programs, global variables do not appear in the Variables view.
Workaround: Type an expression in the Expressions view for each global variable that you want to inspect.

PR: - JI: 393745

If you create a project that requires permission confirmation from the user (such as a geolocation permission), and then build and launch the app on the BlackBerry 10 Device Simulator, you receive an "Unable to determine returned PID from launch" error if you don't accept and dismiss the permissions dialog box on the simulator in a reasonable amount of time.

PR: - JI: 393602

Breakpoints that you set from .gdbinit are not visible in the UI of the IDE.

PR: - JI: 393564

When you change a library project name in the IDE, the library references of application projects that use that library are not updated automatically to use the new name.
Workaround: Update the library references manually. You can do this by clicking Preferences > C/C++ General > Paths and Symbols and changing the references in Includes, Libraries, and Library Paths. Or you can the bar-descriptor.xml and change the references in the <qnx>, <configuration>, and <asset> elements.

PR: - JI: 393534

The Memory Analysis tool does not always collect all available events with multiple clients.

PR: 346267 JI: 402332

On Mac OSX 10.8, if applications are downloaded from 'Anywhere', you receive a dialog box that states "Momentics is an application downloaded from the Internet. Are you sure you want to open it?" when you launch the IDE.
Workaround: Change the system settings in Security and Privacy to prevent the dialog box from appearing when you launch the IDE.

PR: 328852 JI: 394005

When you switch between a device and a simulator, you must click Run instead of Build the first time after the switch.

PR: 296376 JI: 393904

If your application requires permissions and you launch it from the QNX Momentics IDE, you must promptly accept the permissions on the device or the launch might time out.

PR: 276767 JI: 402278

In a Windows environment, uninstalling the IDE does not remove any SDKs installed using the update manager.
Workaround: Manually remove the SDKs from the installation directory.

PR: 268872 JI: 393865

If you rename an existing project, the IDE does not prevent you from using special characters, spaces, or other invalid naming conventions.
Workaround: To prevent issues, you should avoid using special characters, spaces, and names that are shorter than 3 characters or longer than 25 characters.

PR: 262943 JI: 393855

If you update the IP address of a BlackBerry Target and click OK without clicking Apply first, the IDE gives an error that it can't connect to the target. However, the IDE does connect.
Workaround: After updating the IP address, click Apply before clicking OK.

PR: 259875 JI: 393848

The locked SDKs in the Update Native SDK wizard may not accurately reflect the SDKs you are using. Use care when uninstalling SDKs to ensure that you don't uninstall an SDK that you want to continue using.

PR: 258694 JI: 393837

In a Linux environment, if you run the update manager and do not choose the options to switch to the newest SDK or to update the IDE, after the upgrade, the newest SDK is used by default.
Workaround: When you run the update manager, choose the option to update the IDE.

PR: 240577 JI: 393808

Cancelling the BAR file signing process deletes a previously signed BAR file.
Workaround: Increment the app version before signing the BAR file for the second time.

PR: 239383 JI: 393806

Postmortem debug is not available for shared libraries. The error message, "'Asynchronous viewer input update' has encountered a problem. An internal error has occurred." is displayed.

PR: 231389 JI: 393795

On Windows, using blackberry-deploy from the command line results in the error "Cannot connect: Permission denied: connect. Please check IP address settings for the target. Try to ping the target."
Workaround: Before you run blackberry-deploy from the command line, execute bbndk-env.bat, which sets the environment variables properly.

PR: 225372 JI: 383023

Using GNU debugger, your debug session may break with an internal-error (for example, handle_inferior_event).

PR: 206368 JI: 393773

If you debug an application with Windows XP, you may receive an error stating there was an "InvocationTargetException".
Workaround: Install the Microsoft Visual C++ 2008 Redistributable Package (x86).

PR: 201809 JI: 382910

When debugging an OpenGL 2.0 project, the debugger may skip some breakpoints.

PR: 195895 JI: 393766

If you try to launch an application in debug mode that is already running on the device, the QNX Momentics IDE may consume 100% of your CPU.
Workaround: Close the application on the device before launching it again.

PR: 183905 JI: 393757

When setting a project-specific SDK, the settings will only take effect the second time you build your project.

PR: 157697 JI: 382833

A class containing a pure virtual function using variable arguments cannot be inherited virtually. The following error is generated: "generic trunk code fails for method 'virtual void Log::Logger::Debug(const char*, ...)' which uses '...'".

PR: 140310 JI: 393746

When you create a project with a name that begins with a numeric value, you will see the following error: "Package ID is invalid". Project names cannot start with a numeric value and must start with a letter from a-z or A-Z.

PR: 121283 JI: -

During debug sessions, watchpoints are not supported.

PR: 119766 JI: 393738

If you launch Run Config and enable the Code Coverage tool, when you check Code Coverage Sessions, there is no coverage of shared and static libraries.

PR: 117556 JI: 382703

While debugging the "GoodCitizen" sample project using the "Step Into" function, the debugger doesn't step into the function handle_events(). The debugger jumps directly to the function update() and steps into that function.

PR: 114742 JI: 393718

Do not launch your application with the Application Profiler enabled in debug mode. This might cause the IDE to stop responding.

PR: 114071 JI: 382690

During initialization, the MSYS.dll provided with the Native SDK will try to map network shares. If they are not available, then it will take as long as the network access timeout for each such mapped share for MSYS to start. This can lead to build times being slower if MSYS based utilities are used.

PR: 111911 JI: 393715

To use the breakpoint command GNU Debugger (GDB) Command Action, you need to switch your debug framework to CDI. Click Run > Debug Configurations. Select your application, and on the Main tab, click Select Other at the bottom of the page. Select CDI Debugging Framework (Traditional) Launcher, and click OK.

PR: 111197 JI: 382684

The Native SDK ships static libraries for most of the libraries of the platform. However, we recommend using shared libraries where possible to reduce your application footprint and to take advantage of bug fixes in the platform.

PR: 77220 JI: 393694

If you use the Application Profiler with the Sampling method on a target, all threads must be bound to CPU 0 because the Application Profiler only checks samples for CPU 0.

Scoreloop SDK


PR: - JI: -

On occasion, when you are running the Setup Wizard for the first time either directly from the Games app or using a 3rd party game, when you click the Let’s Play button on the last page of the wizard, the Games app might close unexpectedly. This does not affect the Setup, and the Games app or the 3rd party game works normally when started again.

PR: - JI: 469817

You can't set a profile picture on the edit profile page of the Games app.

Cascades - Known issues

Active Frames


MKS: - JI: 477424

For this release of the BlackBerry 10 Native SDK and the BlackBerry 10 OS, the size of Active Frames is 310 x 396 for devices with a 720 x 1280 screen resolution. In the future, and for future devices with this screen resolution, the size of Active Frames will be 319 x 437. It is recommended that you create assets and text for Active Frames that support the 319 x 437 size. This may cause your Active Frame to look distorted when developing for the 10.2.0.1443 release and earlier but it will appear as expected for future releases and devices.

Cascades UI framework


MKS: - JI: 435826

If you use the shortcut keys to jump ahead to message that aren't visible, the message won't display.

MKS: - JI: 381402

StandardListItem render text from right-to-left languages left justified.

MKS: - JI: 151155

After using the spellchecker, two finger text selection sometimes doesn't work properly.

MKS: - JI: 151052

If you're using a WebView, web links without a http:// prefix aren't recognized as web links.

MKS: - JI: 150617

If BlackBerry Balance is locked, copying from personal to work within a share email card results in a error saying you're not allowed to copy work content into a personal email.

MKS: - JI: 150377

When creating CustomControl objects, the Container that is set as the root is being wrapped by a phantom Control.

MKS: - JI: 150304

You can't open a web link in an email in the BlackBerry Hub after changing the language or region.

MKS: - JI: 149955

Text message with apostrophes or hyphens aren't found when searching the inbox for the same words without apostrophes or hyphens.

MKS: - JI: 149575

Sometimes emails in the BlackBerry Hub with large tables don't display properly when moving your view around.

MKS: - JI: 149365

The auto-complete listing in the QNX Momentic IDE shows a scrollPosition() method in ListView, however, this method doesn't work.

MKS: - JI: 149252

If there is a large number of misspelled words in a text control, the spellchecker sometimes stops highlighting the misspelled words.

MKS: - JI: 146426

If you hold down your finger on a whitespace, sometimes the whitespace is selected.

MKS: 7299624 JI: 381722

If you have a group chat on BBM, BlackBerry HUB might still display the chat after you delete it, and the title field might be incorrect.

MKS: 7127069 JI: 151012

When you peek at a screen that includes a freeform TitleBar, the expandable area of the TitleBar may be revealed.

MKS: 7092299 JI: 377331

If you do not have a device password set and you lock your device and then swipe down from the top to put the device in bedside mode, when you try to wake up the device by swiping up, the password dialog is not presented or the UI does not respond to the swipe up.
Workaround: Press the Power/Lock button on the top of your device and hold it for a few seconds, then click Cancel.

MKS: 7042073 JI: 150791

In a ListView, calling itemRemoved() and itemAdded() with the same index path may cause the app to become unresponsive.

MKS: 7032346 JI: 150752

If you invoke and then dismiss a tooltip using two fingers, the ActionBar may become unresponsive.

MKS: 7013947 JI: 150678

If a DropDown automatically receives focus before it is fully populated with options (for example, by pressing Enter to submit an input field when the DropDown is a different control, like a TextArea), this focus will prevent the DropDown from updating as expected.
Workaround: Set focusPolicy = FocusPolicy.Touch on the DropDown.

MKS: 7003155 JI: 388259

When you have a WebView and call storage()->clear(), the WebView storage will not be cleared.
Workaround: Use a render fence to set up WebView storage after the WebView has been rendered.

MKS: 6949083 JI: 150417

When using keyboard shortcuts, keys are case-sensitive (for example, "Alt + r" is not the same as "Alt + R").

MKS: 6935196 JI: 381537

You might not be able to share a link for a mapped network drive from an email.

MKS: 6889257 JI: 150253

When you set a custom title for the Back button on the action bar, the tooltip will continue to display the default "Back" instead.

MKS: 6877490 JI: 150190

When your device language and region are set to Greek and Greece respectively, if you press and hold the V key on your keyboard to enter an accented Greek character, then press the Shift key to capitalize the accented character, it remains lower case.

MKS: 6866370 JI: 150165

When you use a validator in a password TextField and the validation fails, the errorMessage icon and text are not displayed.

MKS: 6861944 JI: 150144

When you reach the bottom of a view and the action bar reappears, it may cause the scroll bar to display incorrectly and "bounce."

MKS: 6859981 JI: 150128

When you display the action menu in a list, and then navigate quickly between pages, sometimes the action menu will open with an empty or incorrect display.

MKS: 6854001 JI: 381511

When the keyboard is displayed in an app (for example, if a user taps a text field), the transition of the page content is not in sync with the appearance transition of the keyboard.

MKS: 6769184 JI: 149866

When you change the orientation in the QML Preview of the Momentics IDE for BlackBerry, sometimes the orientation doesn't change correctly.

MKS: 6740735 JI: 149804

When you use a DropDown control and you try to remove the option at index 0 while the option at index 1 is selected, the app may terminate unexpectedly.

MKS: 6698227 JI: 381478

Icons that are used in a SegmentedControl may be cropped at the left and right edges, even if there is width available to display the icons correctly.

MKS: 6697336 JI: 149613

Calling bb::cascades::QmlDocument::create() in a non-Cascades app may cause the app to terminate unexpectedly.

MKS: 6668175 JI: 149509

The setKey() function in the Shortcut class can erroneously accept invalid strings (for example, strings that don't correspond to an acceptable shortcut).

MKS: 6421441 JI: 148647

If an implicit or explicit animation occurs immediately after an orientation change of the device, the animation does not play but instead jumps to its final position. For example, this issue may occur if animations are started from the rotationCompleted() or orientationChanged() signals.

MKS: 6338532 JI: 148249

When a ListView control's flick mode is set to a non-default value and a slot function is connected to the flickModeChanged() signal, calling the resetFlickMode() function doesn't set the flick mode back to the default value and no signal is emitted.

MKS: - JI: 469817

Selecting a profile photo in the Games app displays a toast dialog stating "Target was not found" message.

MKS: - JI: 486888

Clock background on Astro-X is white in Analog mode, clock and bottom buttons are bigger, and Timer doesn't display correctly.

MKS: - JI: 443209

In the Calculator app, the rightmost digit is hidden in the calculator screen.

MKS: 6895225 JI: 381527

In BBM, some special characters are displaying as squares.

MKS: 6681103 JI: 381474

In some Cascades apps, the text flickers after typing in a PIN.

MKS: - JI: 490079

The Weather app crashes when you try to add a city while the ScreenReader is turned on.

Cascades platform APIs


MKS: - JI: 478856

Applications installed in the enterprise perimeter can’t be invoked by the Geomonitor service. Invocation defaults to the personal perimeter and not enterprise.

MKS: - JI: 469847

When you send a port directed message to a headless app, the port directed SMS service triggers are only fired once.

MKS: - JI: 478389

When you're using a MapView, no useful information is displayed in a location caption dialog for the radius of a Geolocation, radius of a GeoDeviceLocation, a GeoPolygon, or GeoPolyline on that MapView. Subsequently, you cannot interact with a polygon, line, or radius circle.

MKS: - JI: 477520

If you have a GeoLocation with a radius greater than 0, only the marker is rendered, not the radius circle.

MKS: - JI: 449197

GeoPolylines and GeoPolygons don't render if they cross 0, 180, or -180 degrees longitude or latitude.

MKS: - JI: 449189

Dotted and dashed edge styles don't render when you're using GeoDeviceLocation.

MKS: - JI: 449188

Dotted and dashed edge styles don't render when you're using GeoPolygon.

MKS: - JI: 449170

If you're using a GeoPolygon, inner boundaries don't render.

MKS: - JI: 441438

Generating static image maps with MapImageGenerator takes longer than intended.

MKS: - JI: 456191

When a mode change occurs, the service only sends and update stating the new mode, it does not send an update regarding the new policies for other settings that have changed due to the cascading effect of the mode change.

MKS: - JI: 422741

Sometimes the processStateChanged() signal from Application isn't emitted.

MKS: - JI: 468726

If you connect to the queryChanged() signal passing a QUrl, change the query with setQuery(), no signal is emitted.

MKS: - JI: 455645

Visually disabled items get highlighted when ListSelectionIndicator is set to highlight on SystemListDialog.

MKS: - JI: 466800

The networkOwnerIpAddress() and networkOwnerHardwareAddress() of WiFiDirect return empty strings.

MKS: - JI: 455682

Cascades maintains the visible and opacity properties of an ActivityIndicator. An ActivityIndicator becomes visible (opacity == 1) when it is running, and it is not visible (opacity == 0) when it is stopped. As a result, you should not read or set the visible and opacity properties of an ActivityIndicator. If you read or set the visible or opacity properties, it can cause unexpected results in your app.

MKS: - JI: 385110

In future releases, headless apps will have heap usage limit based on permissions set.

MKS: 7307034 JI: 377486

An InvokeTargetFilter allows you to set the MIME type as '*' and register the filter, even if the filter is restricted.

MKS: 7301823 JI: 389904

When reading a URI tag that contains ‘pin’, the BBM application doesn't handle the content of the tag, but the Smart Tags application does and invokes the URI.

MKS: 7128814 JI: 284877

An established TCP connection over the cellular network interface fails when Wi-Fi is enabled on a device that is initially connected to a mobile network with Wi-Fi disabled.

MKS: 6987098 JI: 86080

On the BlackBerry 10 Device Simulator, if you connect the windowGroupInvisible() and processStateChanged() signals and then minimize the app, neither signal is emitted.

MKS: 6989397 JI: 468274

When you have an app with paid digital items listed on the BlackBerry World storefront and call the requestPrice() function, both a valid SKU value and a valid ID number are required in order to retrieve the price. However, the documentation states that only one of the ID or SKU is required in order to retrieve the price.

MKS: 6864069 JI: 85749

InvokeRequest.setMetaData() doesn't work correctly if a QByteArray as part of the QVariantMap is passed in.

MKS: 6828738 JI: 468275

Opening a large number of cards can cause the device to become unresponsive.

MKS: 6791208 JI: 149929

When you set a URL property for a QML object, file paths are case-sensitive when they should be case-insensitive. For example, “FILE:app/native/assets/contacts.json” and “file:app/native/assets/contacts.json” should be treated the same, but are not. Also, a URL that’s defined in QML may result in a URL that has part of the path duplicated.

MKS: 6761803 JI: 85463

When using cards in an app that is run on the BlackBerry 10 Device Simulator, rotating the simulator may cause the UI to become distorted.

MKS: 6721747 JI: 149715

The API documentation for MenuItemInvokeParams.fileTransferMode() states that the file transfer mode will be applied if the scheme of the URI is "file:///". It should also note that the third forward slash represents the file path.

MKS: 6627992 JI: 196223

On the BlackBerry 10 Device Simulator, if you start the controller from the installation folder and connect it to the simulator, then launch an app, you may not be able to switch the charging state to "charging."

MKS: 6593094 JI: 84881

When you add a custom URI to an InvokeTargetFilter and then retrieve the list of custom attributes, the size of the custom attribute list is reported as 0. The documentation does not specify that the returned size will be 0.

MKS: 6557112 JI: 134626

Progress toasts sometimes time out incorrectly when show() or exec() is called repeatedly.

MKS: 6488711 JI: 383271

On the BlackBerry 10 Device Simulator, if you're using the SdCardInfo API, the SD card channel requires access_shared permissions, but no permissions should need to be set.

MKS: 6218365 JI: 381328

The move() function of QListDataModel moves items incorrectly. If the 'from' index is lower than the 'to' index, the item is moved to the 'to' index minus 1.
Workaround: If you're moving to any index except for the last, move to an index expected plus one. There is no way to move to the last index with this issue present.

MKS: 5868072 JI: 381230

Invoking multiple cards while in landscape mode distorts the user interface.

MKS: 5731088 JI: 376903

When a card is closed, InvokeManager::peekEnded() signal is emitted twice. It should only be emitted once.

MKS: 3212561 JI: 381183

Classes that inherit DataModel, such as GroupDataModel, QListDataModel, and XmlDataModel, are missing some description information for implemented superclass functions, such as childCount(), hasChildren(), type(), and data().

MKS: 5814025 JI: 393763

Sometimes when editing JavaScript, code completion displays no proposals when there are proposals to display, including on console functions (such as the console.debug() function) or math functions (such as the Math.sin() function). The functions still work at runtime though.

MKS: 6040525 JI: 393784

On Windows 7 64 bit, QML Preview may fail to render ListView components when zooming.

MKS: 6042185 JI: 393786

The conditional breakpoint doesn't work in both a JavaScript section of a QML file and a JavaScript function of a JavaScript file.

MKS: 6902394 JI: 393915

The lupdate tool does not correctly handle files with names containing more than one dot.
Workaround: Do not use more than one dot when naming project files.

MKS: 6337174 JI: 467325

When using the Memory Analysis Tool to analyze Cascades projects, the Memory Problems view takes longer than expected to populate the errors.

MKS: - JI: 428692

The inputAllowed property of MultiSelectHandler doesn't display in QML editor.

MKS: - JI: 432658

QML preview doesn't render text initially when a ForeignWindowControl is in the UI.

MKS: - JI: 448858

Compiling a project with an mkbuild in command prompt sometimes results in a BundleException and SWTException.

MKS: - JI: 461951

If you debug multiple projects at once, only the first project will hit breakpoints you set.

MKS: - JI: 436711

In ValueA11ySpecialization, the maxValueText(), minValueText() and valueText() properties are not NULL by default as documented.

MKS: 6880952 JI: 381521

The code that allows internal and 2.5 party applications to use custom Emoticons may potentially cause an app crash.

MKS: - JI: 461658

Currently, the category type for headless apps is incorrectly returned as “service”. In the future, the proper type will be returned.

MKS: 6172139 JI: 150783

There is missing documentation on QtNfcSubset classes including some enumerations and constructors in QNdefRecord, QNdefMessage, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, and QNdefNfcUriRecord.
Workaround: Look at the respective header files in the installation folder of the BlackBerry 10 Native SDK.

Cascades Builder


MKS: - JI: 461951

If you debug multiple projects at once, only the first project will hit the Javascript breakpoints you set.

MKS: - JI: 454892

If you have Qt libraries installed in your Windows-based computer, sometimes QML preview may fail.
Workaround: Uninstall any extra Qt libraries found in your system32 and syswow64 folders.

MKS: - JI: 432658

QML preview doesn't render text initially when a ForeignWindowControl is in the UI.

MKS: - JI: 428692

The inputAllowed property of MultiSelectHandler is incorrectly marked as an error, even though it valid. The error can be safely ignored.

MKS: 6902394 JI: 393915

The lupdate tool does not correctly handle files with names containing more than one dot.
Workaround: Do not use more than one dot when naming project files.

MKS: 6337174 JI: 467325

When using the Memory Analysis Tool to analyze Cascades projects, the Memory Problems view takes longer than expected to populate the errors.

MKS: 6040525 JI: 393784

On Windows 7 64 bit, QML Preview may fail to render ListView components when zooming.

MKS: - JI: 462100

Adding or removing source or header files doesn't automatically update the project's config.pri file.

MKS: - JI: 467743

Components that derive from CustomControl do not display accessibility warnings correctly.

MKS: - JI: 461229

In the QML editor, if you clon the editor, make an edit, close the clone, and then edit the original, pressing the Enter key after any opening bracket does nothing.

MKS: - JI: 460850

In order to do C/C++ debugging for a Cascades app in the work space, you have to disable JavaScript debugging.

Cascades Exporter plug-in for Adobe Photoshop


MKS: - JI: 508525

When using Cascades Exporter with an installation of Adobe Photoshop that uses French as the default language, a "Problem null" dialog might be displayed when you export a project, indicating that the export process fails.

BBM Social Platform


MKS: 6515937 JI: 389356

When the Connect to BBM permission (Settings > Security and Privacy > Application Permissions) is toggled from enabled to disabled or from disabled to enabled, the registration and permission states are not updated. This issue relates to 6118318.
Workaround: Restart the app if permissions have been modified.

Back to Top

Core - Looking for release notes for previous releases?

You can find the release notes for the previous releases on the following pages:

Native SDK 10.2 Release Notes

Native SDK 10.1 Release Notes

Native SDK 10.0 Release Notes

Back to Top

Last modified: October 17, 2013