Location API for Java ME

Last updated

The Location API for Java ME is a compact and generic Java 2 ME API that produces information about the device's present physical location to Java applications. This API can be optionally supported by mobile phone and PDA manufacturers, with the minimum Java platform required for this API being CLDC v1.1.

Contents

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 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 GPS, cellular, or other positioning methods. The API supports: [1]

The Location API does not support:

Device independence

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:

along with device specific wrappers.

Support

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 Series 60 3rd Edition devices.

Related Research Articles

Java virtual machine Virtual machine

A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME. As of December 22, 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.

Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition framework and sits on top of Connected Limited Device Configuration (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process. The first MIDP devices were launched in April 2001.

The Connected Device Configuration (CDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more profiles to give developers a platform for building applications on embedded devices ranging from pagers up to set-top boxes. The CDC was developed under the Java Community Process as JSR 36 and JSR 218.

The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 and JSR 139.

Binary Runtime Environment for Wireless Application development platform

Binary Runtime Environment for Wireless is an application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It is offered in some feature phones but not in smartphones. First developed in 1999, as a platform for wireless applications on CDMA-based mobile phones, it debuted in September 2001. As a software platform that can download and run small programs for playing games, sending messages, and sharing photos, the main advantage of Brew MP is that the application developers can easily port their applications among all Brew MP devices by providing a standardized set of application programming interfaces. Software for Brew MP enabled handsets can be developed in C or C++ using the freely downloadable Brew MP software development kit (SDK). The BREW runtime library is part of the wireless device on-chip firmware or operating system to allow programmers to develop applications without needing to code for system interface or understand wireless applications. BREW is described as a pseudo operating system, but not a true mobile operating system. BREW is not a virtual machine such as Java ME, but it runs a native code.

Java APIs for Bluetooth Wireless Technology (JABWT) is a J2ME specification for APIs that allows Java MIDlets running on embedded devices such as mobile phones to use Bluetooth for short-range wireless communication. JABWT was developed as JSR-82 under the Java Community Process.

The Mobile Media API (MMAPI) is an API specification for the Java ME platform CDC and CLDC devices such as mobile phones. Depending on how it's implemented, the APIs allow applications to play and record sounds and video, and to capture still images. MMAPI was developed under the Java Community Process as JSR 135.

Content Repository API for Java (JCR) is a specification for a Java platform application programming interface (API) to access content repositories in a uniform manner. The content repositories are used in content management systems to keep the content data and also the metadata used in content management systems (CMS) such as versioning metadata. The specification was developed under the Java Community Process as JSR-170, and as JSR-283. The main Java package is javax.jcr.

The Security and Trust Services API for J2ME (SATSA) is a collection of Java ME-based APIs that provides compliant devices with additional cryptographic security features. It permits the communication of a Java ME application with a smartcard through the APDU and Java Card RMI protocols. SATSA was developed under the Java Community Process as JSR 177.

The Sony Ericsson Java Platform is a set of profiles describing particular Sony Ericsson Java implementation. It was designed to help developers to focus on a platform rather than on a variety of different product names. Two platform branches exist, supporting Symbian (SJP) and non-Symbian (JP) based phones respectively. The platforms are implemented through an evolutionary approach in order to ensure forwards compatibility between platform versions, which means that all JSRs implemented on one platform are also implemented on all higher platforms. Normally each platform version is used in several phone models. Some platform features are optional, that is, configurable. For example, the Java Bluetooth APIs are only enabled for phones which actually support Bluetooth wireless technology. These interfaces are mostly invisible to the end user, who only has to download a JAR file containing the application to the phone.

Ovi (Nokia) Former Internet services by Nokia

Ovi by Nokia was the brand for Nokia's Internet services. The Ovi services could be used from a mobile device, computer or via the web. Nokia focused on five key service areas: Games, Maps, Media, Messaging and Music. Nokia's aim with Ovi was to include third party developers, such as operators and third-party services like Yahoo's Flickr photo site. With the announcement of Ovi Maps Player API, Nokia started to evolve their services into a platform, enabling third parties to make use of Nokia's Ovi services.

The phoneME project is Sun Microsystems reference implementation of Java virtual machine and associated libraries of Java ME with source, licensed under the GNU General Public License.

In computing, the Advanced Multimedia Supplements is an API specification for the Java ME platform. Practically speaking, it is an extension to JSR 135 Mobile Media API providing new features, such as positional 3D audio processing, audio and video effects processing, better controls for digital camera, and better support for analog radio tuner including Radio Data System. AMMS was developed under the Java Community Process as JSR 234.

The W3C Geolocation API is an effort by the World Wide Web Consortium (W3C) to standardize an interface to retrieve the geographical location information for a client-side device. It defines a set of objects, ECMAScript standard compliant, that executing in the client application give the client's device location through the consulting of Location Information Servers, which are transparent for the application programming interface (API). The most common sources of location information are IP address, Wi-Fi and Bluetooth MAC address, radio-frequency identification (RFID), Wi-Fi connection location, or device Global Positioning System (GPS) and GSM/CDMA cell IDs. The location is returned with a given accuracy depending on the best location information source available.

Nokia 2730 classic

The Nokia 2730 classic is a Nokia Quad-band GSM/UMTS 3G cell phone that includes a camera, FM radio, Bluetooth, music and video player, as well as several internet-based applications.

Symbian Mobile operating system

Symbian is a mobile operating system (OS) and computing platform designed for smartphones. Symbian was originally developed as a proprietary software OS for PDAs in 1998 by the Symbian Ltd. consortium. Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARM processors, although an unreleased x86 port existed. Symbian is used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of 2010, at a time when smartphones were in limited use, when it was overtaken by iOS and Android. It was notably less popular in North America.

Nokia Asha platform

The Nokia Asha platform is a mobile operating system (OS) and computing platform designed for low-end borderline smartphones, based on software from Smarterphone which was acquired by Nokia. The platform inherits UI similarities mostly from MeeGo "Harmattan", and replaces Series 40 on Nokia's low-end devices. The user interface design team was headed by Peter Skillman, who had worked previously on webOS and the design of MeeGo for the Nokia N9.

References

  1. Dr. Dobb's 2006 - The Java Location API
  2. Dr. Dobb's 2006 - The Java Location API - Address Information