Devices do not necessarily need a built-in location provider module. For example, devices can use an accessory that implements a location-providing method. Such an accessory can be, for example, a GPS receiver with a Bluetooth connection. The accuracy of the location information depends on the location-providing method. Some devices implementing the Location API can obtain location information from the base stations within the mobile phone network. Local short-range positioning beacons can also be used to obtain the location information. In addition, some devices may support a hybrid approach called assisted GPS (AGPS), in which GPS and the mobile phone network are used together to provide the location information. The following figure demonstrates the positioning of a device by using the network's base stations and GPS satellites.
Figure: Positioning of a device by using base stations and GPS satellites
In general, location data from GPS receivers is more accurate than network-based data. However, in a downtown area, GPS receivers may suffer from so called canyon effects, where satellite visibility is intermittent. This can cause service breaks on MIDlets using the Location API. Depending on the location-providing method, using the Location API may or may not be free. The Location API allows MIDlets to define specific criteria for selecting which location-providing method to use. The decision whether to pay for the service can be made using these criteria. From Java Runtime 1.0.0 for Series 40 onwards, MIDlets running on Series 40 devices can also explicitly specify which location-providing method to use.
To determine device location:
For more information about using base stations to determine device location, see section Cell ID positioning.