Using specific positioning methods

This section describes positioning properties that are available for BlackBerry apps. You can use these properties to specify that your app should only use GPS, Wi-Fi, cellular, or carrier-assisted positioning methods.

GPS

You can restrict your app to only retrieve the GPS location of a device. To only use GPS positioning methods, set the provider property to gnss and the fixType property to gps_autonomous.

src.setProperty("provider", "gnss");
src->setProperty("fixType", "gps_autonomous");

Wi-Fi

You can restrict your app to only use Wi-Fi to find the location of a device. To only use Wi-Fi positioning methods, set the provider property to network and the fixType property to wifi.

src->setProperty("provider", "network");
src->setProperty("fixType", "wifi");

Cell site positioning

If you want to restrict your app to find the location of a device only using cell site positioning methods, set the provider property to network and the fixType property to cellsite.

src->setProperty("provider", "network");
src->setProperty("fixType", "cellsite");

Carrier-assisted positioning

There are also carrier-assisted positioning methods that your app can use to find the location of a device. These are either mobile station-based or mobile station-assisted methods. The mobile station-based method uses the assistance data that's pulled occasionally from the assistance server and combines this data with the satellite information on the device to compute the fix. The mobile station-assisted method sends the satellite information from the device to the assistance server, which computes the location fix.

The mobile station-assisted method requests assistance data for every location fix.

These methods are useful if the device is in a location where there isn't enough satellite coverage, such as indoors or outdoors surrounded by buildings or trees.

You must have permission from the carrier to use this positioning method and the carrier must support this positioning method. If the carrier doesn't support assisted positioning methods, and your app has set this as a preferred positioning method, your app won't receive any location updates.

To only use mobile station-based positioning methods, set the provider property to gnss and the fixType property to gps_ms_based.

src->setProperty("provider", "gnss");
src->setProperty("fixType", "gps_ms_based");

To only use mobile station-assisted positioning methods, set the provider property to gnss and the fixType property to gps_ms_assisted.

src->setProperty("provider", "gnss");
src->setProperty("fixType", "gps_ms_assisted");

For mobile station-assisted positioning methods, you must also specify the address of the assistance server hosted by the carrier. There are three types of assistance servers:

  • PDE (used by CDMA carriers)
  • SLP (used by GSM carriers)
  • Custom (used by Verizon, which uses an app ID and an app password to authenticate the application, allowing it to get assistance data)

CDMA carriers host a Position Determining Entity (PDE) server that assists the device in getting a GPS fix. Each carrier has its own PDE server. If you are planning on deploying your application on multiple carriers, you need to use different PDE web addresses for each carrier. Some carriers include the PDE web address on the device itself. In these cases, you don't need to set up PDE information in your application. Contact your target carriers for more details.

To set up the PDE assistance server, you must set the pdeUrl property to the web address of the assistance server.

src->setProperty("pdeUrl", url);

GSM carriers host a Supplementary Location Platform (SLP) server that provides assistance similar to PDE servers.

To set up the SLP assistance server, you must set the slpUrl property to the web address of the assistance server. This web address is usually provided by the carrier. Some carriers choose to set this web address on the device.

src->setProperty("slpUrl", url);

For VZW assistance servers, you must set the appId and appPassword properties. The values for these properties are provided by Verizon.

src->setProperty("appId", id);
src->setProperty("appPassword", passwd);

Last modified: 2013-12-21



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus