OpenLAPI is most commonly used to access Bluetooth GPS devices from mobile devices, whilst retaining a high level of source code compatibility with JSR-179. OpenLAPI also has a range of backends for emulating location in development environments, making it a popular tool for J2ME developers.
The emulator mode supports the following back-ends for determining location:
* Access of hardware GPS device over bluetooth (if available)
* Emulate a moving device from an NMEA log file (recorder application provided).
* Emulate a moving device from a predefined trail in a Google Earth file KML.
* Emulate a moving device by picking random entries from a persistent store
And the software may be shipped as part of a MIDlet (Java application) to provide location awareness through the following back-ends:
* Access of bluetooth GPS device. Bluetooth GPS devices are very affordable.
* Proprietary APIs. A select number of handsets were released with GPS devices in the period before the adoption of JSR-179, and therefore have their own interface. OpenLAPI can provide a wrapper layer to hide the hardware in these cases.
* Log file lookup, appropriate for physically static devices
It is possible to negotiate commercial arrangements with local network providers to allow location detection via CellID and other network specific techniques (e.g. angle of incidence and triangulation). A mobile phone knows which basestation it is communicating with. By knowing where the basestation is located, location awareness can be accurate to several hundred meters!