single common Java ME implementation which is the base for a variety
of models from many manufacturers.
Although not a technical issue, it is important to understand the
delivery chain in which Symbian OS plays a central role but is not the
only actor. The Symbian ecosystem is not a single monolithic entity.
At the time of writing, Symbian OS, including the Java ME subsystem,
is shipped to phone manufacturers who can extend and customize the
operating system. The Java ME platform is equipped with a large standard
selection of Java ME APIs (see Chapter 10) when it reaches the phone
manufacturer, who can then add additional JSRs of their own. This
customization approach is what ensures one common platform for a
large number of devices from many handset manufacturers, all of whom
can still configure the platforms for their needs and brand for network
The Java ME developer, at the end of the delivery chain, sees many
devices which have much in common. There is still much diversity, so
we dedicate Chapter 4 to considering how to deal with it. Luckily, having
a common implementation on Symbian OS considerably reduces the
fragmentation problems that plague other platforms.
Apart from JSR APIs, there are other APIs that are not standardized by
the Java Community Process (JCP) but which can help you to implement
a solid mobile application.
3.2.2 Nokia UI API
The Nokia UI API has been available since the days of MIDP 1.0 and
devices such as the Nokia 6600. Back then, MIDP 1.0 was the standard
for ensuring maximum portability and concentrated only on features
that could be implemented by all mass-market devices. Some of those
devices had very limited graphics capabilities and sometimes no sound
capabilities at all. The Nokia UI API was introduced to make such features
available to Java applications on Nokia devices, which already had sound
capabilities and better graphics capabilities.
Although the API is named after Nokia, it is also available on phones
that belong to other manufacturers. Because of its success among MIDP
1.0 developers, other phone manufacturers (including Sony Ericsson)
made the API available on their platforms.
The Nokia UI API consists of a small number of classes defined
in the proprietary com.nokia.mid.ui and com.nokia.mid.sound
packages. They add the following features:
control of vibration and the LCD backlight
a basic sound API for playing tones and digitized audio
the ability to draw and fill polygons and triangles