Use reliable push without making a BlackBerry Browser request

by Retired on ‎02-17-2010 02:29 PM - edited on ‎10-13-2011 01:30 PM by Retired (6,717 Views)



This article applies to the following:

  • BlackBerry Mobile Data System (BlackBerry MDS™) Connection Service
  • BlackBerry Enterprise Server (BES) versions earlier than 4.1.7
  • BlackBerry® wireless device




As of BES versions 4.1.7 there is no longer any need to perform a network request from the BlackBerry smartphone Browser before sending a push to that device with Application-Level Reliability. In this version additional information about the smartphones has been added to the BES database allowing the BES to determine the device version and other information during startup rather than relying on the UAProf document to be passed.




Before the BlackBerry device user makes a request using the BlackBerry Browser via the BlackBerry MDS, an application attempts to send an Application-Level Reliable Push to the device. BlackBerry MDS responds with the following error:


The specified delivery method is not possible


Before an application can send an Application-Level Reliable Push to a device, the user must make at least one request using the BlackBerry Browser via the BlackBerry MDS. BlackBerry MDS does not register the BlackBerry Device Software version until it receives a request with the UAProf HTTP header.


If it does not register the device software version, it cannot verify whether Application-Level acknowledgements are supported. This is a problem if you are building a solution that pushes content to a Java™ client, and the customer does not use the BlackBerry Browser, or an IT Policy disables the use of the BlackBerry Browser.




A BlackBerry application can make a request via the BlackBerry MDS and set the User Agent and User Agent Profile headers to the proper value for the device. For different ways to make an HTTP or socket connection, see this article.


The User Agent header must be set as follows:




Where <BlackBerry-model> is the model number of the device making the request and <software-version> is the device software version.The following is an example header for the BlackBerry 8700 Wireless Handheld™ running Device Software 4.1:




The User Agent Profile header must be set as follows:<BlackBerry-model>/<software-version>.rdf

Where <BlackBerry-model> is the model number of the device making the request and <software-version> is the device software version. The following is an example for the BlackBerry 8700 wireless handheld running Device Software 4.1:


To determine the device model and software version, go to Options > About on the device.




The method net.rim.device.api.system.DeviceInfo.getDeviceName() can be used to obtain the device model number. For instructions on retrieving the device code version, see this article.