Introducing Mobile Media API (MMAPI)
How Does MMAPI Fit with MIDP 2.0?
MMAPI is an optional package for the Java Micro Edition (ME) platform. MIDP 2.0 is a profile for the development of MIDlets, or applications for Java-enabled mobile devices, such as mobile phones and PDAs. MMAPI can be used with not just MIDP 2.0, but with any Java ME profile and configuration, provided an implementation is available for the device you are developing for. Refer to Beginning J2ME: From Novice to Professional, Third Edition, by Jonathan Knudsen and Sing Li (Apress, 2005) for a review of configurations, profiles, and development of MIDlets.
As you may already know, MMAPI is not the only optional package available for developing applications for the Java ME platform. Other prominent packages include the Web Services API (JSR 172), the Mobile 3D Graphics API (JSR 184), and the Location API (JSR 179). All of these optional packages, like the MMAPI package, are applicable to all available configurations, such as CLDC and Connected Device Configuration (CDC). On the other hand, an optional package such as the Wireless Messaging API (JSRs 120/205) is only relevant to the CLDC-based MID profile (MIDP).
Note: Some devices support the MMAPI in MIDP 1.0 as an optional library, for example, Nokia 3650, Nokia 7650, and Sony Ericsson 610. Applications that use the features of the optional package will only run on devices that have both MIDP 2.0 and the optional MMAPI package installed. The next section includes a comprehensive list of all such devices at the time this article was written.
Figure 1 gives a bird's eye view of how MMAPI, along with the other optional packages, fits in the development of applications for Java-enabled devices. Because this article concentrates on applications developed using MIDP, which are called MIDlets, I'll use that term when talking about such applications.
Who Supports MMAPI?
The specification for MMAPI was developed using the Java Community Process (JCP) (http://www.jcp.org) by a consortium of organizations, including device manufacturers, network operators, and multimedia companies, besides Sun Microsystems. This specification is numbered 135 and can be accessed at http://www.jcp.org/en/jsr/detail?id=135. The initial expert group for the development of this specification was composed of Sun, Nokia, and Beatnik.
Afterwards, several other organizations chipped in and lent their support for the development of this specification. A final release with a version number of 1.0 occurred on June 27th, 2002. A maintenance release (version 1.1) incorporating security enhancements and minor modifications was released a year later on June 26th, 2003. Recently, JSR 234 has been released that identifies advanced supplements for this MMAPI.
As part of the development of this specification, Sun released a reference implementation of this API and a technology compatibility kit (TCK) that can be used to certify that an implementation of this API is compatible with the specification. This is par for any specification developed using the JCP. As stated earlier, this RI is bundled with the Java ME Wireless Toolkit supplied by Sun. Different device manufacturers supply their own implementations compatible with the TCK.
All devices that support MIDP 2.0 automatically support the scaled-down version of MMAPI. Many devices support the full version as an optional package. Table 1 gives a comprehensive list of devices that support MMAPI as an optional package.
Table 1: Devices That Support MMAPI As an Optional Package
|Device Manufacturer||Supported Devices||Wireless Toolkit|
|Alcatel||One Touch 756||http://www.my-onetouch.com|
|BenQ||AX75 (MIDP 1.0), C70, C75, CF75/76, CL75, CX70/EMOTY, CX75, M75, S75, SL75, SXG75||http://www.benq.com/developer|
|Motorola||C975, E1000, A1000, A630, A780, A845, C380, C650, E398, E680, SLVR, T725, V180, V220, V3, V300, V303, V360, V400, V500, V525, V550, V551, V600, V620, V635, V8, V80, V980, i730||http://www.motocoder.com|
|Nokia||All Series 40, Series 60, and Series 80 based devices||http://forum.nokia.com/main.html|
|Samsung||E310, E380, E710, D400, P705, D410, 176X192 Series, E810, E310||http://uk.samsungmobile.com/club/|
|Sony-Ericsson||W900, Z600, T610, T616, T618, V600, W800, K608, W550, W600, z520, D750, Z800, K600, K750, K300, K500, K700, J300, V800, Z500, S700, Z1010||http://developer.sonyericsson.com|
This article introduced MMAPI, an optional package for the development of MIDlets that have embedded audio/video capabilities.
MMAPI provides these capabilities by defining a specification that is protocol and format agnostic, thereby increasing general acceptance and uptake. This has made MMAPI very popular and more and more devices support it.
About the Author
Vikram Goyal is a serious Java developer with over eight years' of experience. Vikram is excited about J2ME and its prospects. He is an experienced writer and has published several well-known books in the industry. Vikram coauthored Beginning JSP 2, Second Edition with Apress, as well other titles from other well-known publishers.
Source of This Material
Pro Java ME MMAPI: Mobile Media API for Java Micro Edition
By Vikram Goyal
Page 2 of 2