String baseName = ...
String locales = ...
res = ResourceManager.getManager(baseName, locales);
StringItem desc = new StringItem(res.getString(STRING_MY_DESC),"");
byte imageData = res.getData(MY_IMAGE);
= Image.createImage(imageData, 0, imageData.length);
MusicMate must also let the user pay for downloaded tracks. JSR-229
Payment API was a mandatory part of the MSA 1.0 specification but was
later removed from the MSA 1.1 maintenance release. This is because
many platforms do not have the infrastructure required to support JSR-229
and including it would impose a requirement that could not be satisfied
by many manufacturers. At the time of writing, it is also not included in
MSA 2.0. However, JSR-177 SATSA API defines APIs that provide security
and trust services for mobile devices and MusicMate can rely on these
features to handle user authentication and payment.
So here we have a high-level plan for MusicMate. Figure 6.2 illustrates
MusicMate's usage of MSA Component JSRs.
Figure 6.2 Usage of Component JSRs by MusicMate
A major item on our task list is to create a compelling user interface
for MusicMate. The audience which this application is targeting will not
be impressed with an interface based on LCDUI widgets. Perhaps we
should go for an LCDUI Canvas-based UI? You could implement your
own library, use a free library (e.g., LWUIT) or use a third-party library.
MSA 1.1 offers you two advanced graphics JSRs that are mandatory
Component JSRs in both Full MSA and MSA Subset: JSR-184 3D Graphics
(see Chapter 8) and JSR-226 Scalable 2D Vector Graphics. Because of the
crucial importance of the user experience on mobiles, we now examine
how to leverage JSR-226 SVG. JSR-226-SVG was initially specified by the
JCP and later became a mandatory part of both full MSA and MSA Subset.
Recently, SVG has emerged as a prominent solution for creating rich
user experiences, with SVG content creation being in the domain of visual