Java APIs for Bluetooth

Last updated

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. [1]

Bluetooth is a wireless technology standard for exchanging data between fixed and mobile devices over short distances using short-wavelength UHF radio waves in the industrial, scientific and medical radio bands, from 2.400 to 2.485 GHz, and building personal area networks (PANs). It was originally conceived as a wireless alternative to RS-232 data cables.

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.

Java (programming language) Object-oriented programming language

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented,and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to "bytecode" that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The language derives much of its original features from SmallTalk, with a syntax similar to C and C++, but it has fewer low-level facilities than either of them. As of 2018, Java was according to Github one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers.

Contents

JSR 82 implementations for Java 2 Platform Standard Edition (J2SE) are also available.

Background

The original Java Specification Request (JSR-82) was submitted by Motorola and Sun Microsystems, [2] and approved by the Executive Committee for J2ME in September 2000. JSR-82 provided the first standardized Java API for Bluetooth protocols, allowing developers to write applications using Bluetooth that work on all devices conforming to the specification. The first version of JSR-82 was released in March 2002. The most recent update to JSR-82, Maintenance Draft Review 4, was released in March 2010. The specification, reference implementation, and Technology Compatibility Kit (TCK) are maintained at Motorola Open Source. [3]

Motorola, Inc. was an American multinational telecommunications company founded on September 25, 1928, based in Schaumburg, Illinois. After having lost $4.3 billion from 2007 to 2009, the company was divided into two independent public companies, Motorola Mobility and Motorola Solutions on January 4, 2011. Motorola Solutions is generally considered to be the direct successor to Motorola, as the reorganization was structured with Motorola Mobility being spun off. Motorola Mobility was sold to Google in 2012, and acquired by Lenovo in 2014.

Sun Microsystems defunct computer hardware and software company which was based in Santa Clara

Sun Microsystems, Inc. was an American company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the Network File System (NFS), and SPARC. Sun contributed significantly to the evolution of several key computing technologies, among them Unix, RISC processors, thin client computing, and virtualized computing. Sun was founded on February 24, 1982. At its height, the Sun headquarters were in Santa Clara, California, on the former west campus of the Agnews Developmental Center.

A Technology Compatibility Kit (TCK) is a suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request (JSR) for compliance. It is one of the three required pieces for a ratified JSR in the Java Community Process, which are:

Technologies and Usage

Discovery

JABWT provides support for discovery of nearby Bluetooth devices. [4] Java applications can use the API to scan for discoverable devices, identify services provided by discovered devices, and search for devices that the device frequently contacts.

Object Exchange APIs

JABWT provides an object exchange API for transfer of data objects between devices. For example, two devices conforming to the OBEX protocol could exchange virtual business cards or calendar appointments.

Device Management

JABWT allows management of the local device’s state. [5] JABWT applications are able to access information about the host device (such as Bluetooth address), mark their host device as discoverable to other Bluetooth devices, and register to provide services.

Security

JABWT supports connections with different levels of security. Applications using the APIs can pass parameters to the Connector.open() method indicating the level of security required to establish a connection to another device.

Compatible Devices

Hundreds of mobile devices from different manufacturers comply with the JSR-82 specification. [6] Google maintains a list of devices that conform to the JSR-82 specification.

Implementations

Several open-source implementations of the JSR-82 specification are available:

See also

Related Research Articles

Java virtual machine runtime environment that can execute Java bytecode as a result of compiling computer programs written in the Java programming language

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 of 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.

OSGi software framework

The OSGi Alliance, formerly known as the Open Services Gateway initiative, is an open standards organization founded in March 1999 that originally specified and continues to maintain the OSGi standard.

Enterprise JavaBeans (EJB) 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.

The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at the JCP website. JCP membership for organizations and commercial entities requires annual fees – but is free for individuals.

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.

JavaServer Faces Java specification for building component-based user interfaces for web applications

JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications and was formalized as a standard through the Java Community Process being part of the Java Platform, Enterprise Edition. It is also a MVC web framework that simplifies construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

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.

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.

The Java Persistence API (JPA) is a Java application programming interface specification that describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.

Apache OpenJPA

OpenJPA is an open source implementation of the Java Persistence API specification. It is an object-relational mapping (ORM) solution for the Java language, which simplifies storing objects in databases. It is open source software distributed under the Apache 2.0 Licence.

JSR 48 Java WBEM API Specification is a Java Specification Request developed under the Java Community Process. It specifies the Java language binding of the DMTF Common Information Model/Web-Based Enterprise Management standards. The JSR 48 Expert Group has completed the public review in 2006 and is now on the way to create a Technology Compatibility Kit in order to finalize the standard. The API can be regarded as stable.

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.

J2EE Management Specification is a Java specification request (JSR-77) for standardization of J2EE server management. The J2EE Management Specification abstracts the manageable parts of the J2EE architecture and defines an interface for accessing management information. This helps system administrators integrate J2EE servers into a system management environment and also helps application developers create their own management tools from scratch.

References

  1. "Java Specification Request: JSR-82". jcp.org. Retrieved 12 February 2013.
  2. "Java Specification Request: JSR-82". jcp.org. Retrieved 12 February 2013.
  3. "Motorola Open Source". Motorola. Archived from the original on 29 July 2007. Retrieved 12 February 2013.
  4. "Using the Java APIs for Bluetooth Wireless Technology". Oracle Technology Network. Retrieved 12 February 2013.
  5. "My Thesis - Literature Study - JSR 82". Kerjaannya Gumi. Retrieved 12 February 2013.
  6. "JSR-82 Compliant Devices". Bluecove Wiki. Retrieved 12 February 2013.