Location API for Java ME: Difference between revisions

Content deleted Content added
Fommil (talk | contribs)
OpenLAPI is LGPL, not GPL
removed duplicate kink
 
(19 intermediate revisions by 12 users not shown)
Line 1:
{{Short description|Physical ___location application interface}}
This specification will define an Optional Package that will enable developers to write mobile ___location-based applications for resource limited devices. The purpose is to provide a compact and generic [[API]] that produces information about the device's present physical ___location to Java applications.
The '''Location API for Java ME''' is a compact and generic [[J2MEJava Platform, Micro Edition|Java 2 ME]] Location[[Application Programming Interface|API]] isthat designedproduces asinformation anabout Optionalthe Packagedevice's thatpresent physical ___location to Java applications. This API can be usedoptionally withsupported manyby [[J2MEmobile Profilephone]]s. Theand [[Personal digital assistant|PDA]] manufacturers, with the minimum Java platform assumedrequired isfor thethis API being [[J2ME]] Connected, Limited Device Configuration ([[|CLDC]]) v1.1]].
The target is low memory devices, so the initial recommendation for the footprint of the implementation of this API is:
* ROM budget max. 20 kB
* RAM budget max. 2 kB[http://jcp.org/en/jsr/detail?id=179]
 
It extends the capabilities of the [[Java Platform, Micro Edition]], a version of the Java platform tailored for [[embedded device]]s such as [[mobile phone]]s and [[Personal digital assistant|PDA]]s. The [[Object-oriented programming|object-oriented]] interface consists of 13 [[Class (computer science)|classes]] in the javax.microedition.___location package. The Location API was developed under the [[Java Community Process]] as JSR 179, released in September 2003 and updated to version 1.0.1 in March 2006. [[Nokia]] is the main author and maintainer of this JSR. OpenLAPI is an [[LGPL]]Java implementationSpecification (not-officially since it hasn't passed SUN TCK[http://thinktankmaths.co.uk/technologies/openlapi/]), for use in emulator environments where the Nokia reference implementation does not exist and for devices which can access a [[GPS]] device over [[BluetoothRequest|JSR]].
 
'''OpenLAPI''' is an [[LGPL]] implementation for use in emulator environments where the Nokia reference implementation does not exist and for devices which can access a [[GPS]] device over [[Bluetooth]].
 
== Features ==
 
The Location API is designed to work with many different positioning methods. Generic interfaces lets application developers implement systems that can retrieve ___location data from multiple sources, based on their availability on the device. It has advantages over a single means of tracking, including fail-over, indoor/outdoor transparency, and a choice between the speed and accuracy trade-offs between [[Global Positioning System|GPS]], cellular, or other positioning methods. The API supports:<ref>[http://www.ddj.com/java/184406388 Dr. Dobb's 2006 - The Java Location API]</ref>
*Current ___location - current [[latitude]], [[longitude]], [[altitude]], [[Direction (geometry)|direction]], and [[speed]] of the phone, and methods to convert it to [[Geographic_coordinate#Degrees:_a_measurement_of_angle|text]].
*Landmark proximity - a store of landmarks can be stored on the phone's memory, and the current ___location can be added as a landmark.
*Address data - the nearest landmark's textual details, such as postal address, phone number, country, and the building and its URL.<ref>[http://www.ddj.com/showArticle.jhtml?documentID=ddj0601i&pgno=8 Dr. Dobb's 2006 - The Java Location API - Address Information]</ref>
*Location listeners - for dynamic ___location-based applications that will be triggered by when the current ___location changes.
 
The Location API does not support:
*Topological data - which is usually derived from the shapes of cell site coverage.
*Location-based queries - although the current ___location of the device can be calculated.
 
== Device independence ==
Line 11 ⟶ 22:
Previously, ___location service implementations were provider specific. The aim of this API was to provide a common API for retrieving the ___location information on a variety of devices.
 
OpenLAPI supports several back-ends. Supported modes are:
* GPS over [[Bluetooth]]
* [[National Marine Electronics Association|NMEA]] logfile (for development)
* KML ([[Keyhole Markup Language]]) (for development)
* random entry from a persistent landmark store (for development)
along with device specific wrappers.
 
== Current stateSupport ==
 
Since many providers choose not to implement this optional JSR, the goal of universality has still not happened and developers are often required to create custom builds for different devices.
 
The Location API is available to Java applications on some [[BlackBerry]] and [[Windows Mobile]] devices, recent [[Motorola]] and [[Sony Ericsson]] devices, and all [[Nokia]] [[S60 (software platform)|Series 60 3rd Edition]] devices.
== External links ==
 
== References ==
* [http://www.jcp.org/en/jsr/detail?id=179 JSR 179]: Location API for J2ME™
<references/>
* [http://openlapi.com OpenLAPI]: OpenLAPI, an [[LGPL]] implementation
 
* [http://www.forum.nokia.com/main/resources/technologies/java/documentation/java_jsr.html#jsr179 Nokia resources]: Nokia resources on JSR-179, including Javadocs and reference implementation
== External links ==
* [httphttps://www.jcp.org/en/jsr/detail?id=179 JSR 179]: Location API for J2ME™J2ME]
 
[[Category:Java device platform]]
[[Category:Java specification requests]]
[[Category:Application programming interfaces]]
[[Category:Keyhole Markup Language]]
[[Category:Java APIs]]