There are ways to get JSR-specific information through system proper-
ties. JSR-184 Mobile 3D Graphics API properties can be queried with the
Graphics3D.getProperties() method, which returns a hash-table
of 3D graphics support properties and their values (see Figure 4.4a). In the
Bluetooth API, LocalDevice.getProperty() should return proper-
ties that are specific to Bluetooth support such as the maximum number
of connections (see Figure 4.4b).
Figure 4.4 System properties for a) the Mobile 3D Graphics API and b) the Bluetooth API
The device-specific system properties can give you additional informa-
tion which is proprietary to a device or manufacturer. For example, S60
3rd Edition FP2 and S60 5th Edition system properties include support for
telephony-related information, such as the International Mobile Equip-
ment Identity (IMEI) number, International Mobile Subscriber Identity
(IMSI) number, current (GSM/CDMA) network signal strength and more.
There is a lot of information available to you through detection, whether
you detect it through a thrown exception or through system properties.
The general idea is to use detection to configure your application's
behavior. Use the information you gain from detection to decide on the
application behavior and actions that are affected.
4.3 Using Adaptive Code and Flexible Design
to Handle Diversity
Not all diversity issues are as obvious as unsupported JSRs or media
support fragmentation. The differences may be small yet their impact on
the user can be significant.