Table of Contents TABLE OF CONTENTS ..........................2 TABLE OF FIGURES..........................6 INDEX OF TABLES ............................ 7 TABLE OF CODE SAMPLES........................9 1 INTRODUCTION ............................ 10 ..............................10 URPOSE ..............................10 UDIENCE .............................. 10 ISCLAIMER .............................. 11 EFERENCES ..........................12 EVISION ISTORY ...................
Page 3
API 2.0 (JSR 205)..................31 IRELESS ESSAGING Messaging Functionality ....................... 31 MMS Message Structure......................31 MMS Message Addressing ......................32 MMS Message Types ........................32 Multimedia Message Service Center Address ............33 Application ID..........................33 7 JSR 120 – WIRELESS MESSAGING API..................34 API (WMA)......................
Page 4
..............................74 VERVIEW API ........................74 JSR-82 B LUETOOTH System Requirements......................... 74 Bluetooth Control Center..................... 75 Device Property Table......................75 Service Registration ......................76 Device Management ........................76 Communication ..........................77 Security Policy .......................... 78 External Events .......................... 79 Alarm & Datebook Behaviour ....................79 Pressing of End Key.........................
TABLE 15 SECURITY POLICE ........54 TABLE 16 INDIVIDUAL PERMISSIONS WITHIN MULTIMEDIA RECORD FUNCTION GROUP ............54 TABLE 17 PERMISSIONS AND GROUPS ........57 TABLE 18 GROUPS AND PERMISSIONS FOR ......59 TABLE 19 MOTOROLA BLUETOOTH DEVICE PROPERTIES ....76 TABLE 20 SECURITY POLICY ........78...
Page 8
TABLE 21 MIDP 2.0 FEATURE/CLASS ........82 TABLE 22 TRUSTED 3RD PARTY DOMAIN ......85 TABLE 23 MIDP 2.0 PERMISSION TYPES ......85 TABLE 24 SECURITY POLICY FOR PROTECTION DOMAINS ....86 TABLE 25 MIDP 2.0 SPECIFIC FUNCTIONS ......87 TABLE 26 ACTIONS PERFORMED OF SIGNER CERTIFICATE VERIFICATION ..91 TABLE 27 SUMMARY OF MIDLET SUITE VERIFICATION ....92 TABLE 28 ADDITIONAL CLASSES, FIELDS, AND METHODS SUPPORTED FOR CLDC 1.1 COMPLIANCE ...........101...
Table of Code Samples CODE SAMPLE 1 JSR 120 WIRELESS MESSAGING API ....42 CODE SAMPLE 2 JSR 135 MOBILE MEDIA API ......44 CODE SAMPLE 3 INITIALIZING THE WORLD ......66 CODE SAMPLE 4 USING THE GRAPHICS3D OBJECT ......67...
J2ME applications for the V3x handset. Disclaimer Motorola reserves the right to make changes without notice to any products or services described herein. “Typical” parameters, which may be provided in Motorola Data sheets and/or specifications can and do vary in different applications and actual performance may vary.
In no event shall Motorola be liable, whether in contract or tort (including negligence), for any damages resulting form use of a product or service described herein, or for any indirect, incidental, special or consequential damages of any kind, or loss of revenue or...
Chapter 2 – J2ME Introduction: this chapter describes the J2ME platform and the available resources on the V3x. Chapter 3 – Developing and Packaging J2ME Applications: this chapter describes important features to look for when selecting tools and emulation environments. It also describes how to package a J2ME application, how to package a MIDlet, and generate JAR and JAD files properly.
Page 14
Appendix C – FAQ: this appendix provides a link to the dynamic online FAQ. Appendix F – Spec Sheet: this appendix provides the spec sheet for the Motorola V3x handset. Appendix H – Quick Reference: this appendix provides quick references to this...
J2ME Introduction The V3x includes the Java™ 2 Platform, Micro Edition, also known as the J2ME platform. The J2ME platform enables developers to easily create a variety of Java applications ranging from business applications to games. Prior to its inclusion, services or applications residing on small consumer devices like cell phones could not be upgraded or added to without significant effort.
The V3x contains OEM APIs for extended functionality ranging from enhanced UI to advanced data security. While the V3x can run any application written in standard MIDP, it can also run applications that take advantage of the unique functionality provided by these APIs.
MIDlets for J2ME handsets. There is a wealth of material on this subject on websites maintained by Motorola, Sun Microsystems and others. Please refer to the following URLs for more information: http://www.motocoder.com...
Page 19
For a look at such environments, review the “Motorola T720 Handset Developer Guide” which is available from the MOTOCODER website. In addition to the IDEs and Sun SDK for development, Motorola offers access to our own SDK which contains Motorola device emulators. From here, a MIDlet can be built and then deployed onto an emulated target handset.
URL request to a WAP page and a hyperlink on that page to the target file. This request will be made through the Motorola Internet Browser (MIB). In MIDP 2.0, the need for a JAD file before download is not required, so the JAR file can be downloaded directly.
Page 21
Corrupt” and returns to Browser after time-out. If JAD does not contain mandatory attributes, “Failed Invalid File” notice appears Method 2 - Direct Cable & Motorola MIDway Tool The direct cable approach can be performed using a tool available from MOTOCODER called MIDway.
If it is not, then contact MOTOCODER support for advice on how to receive an enabled handset. Motorola provides a User Guide with the MIDway tool (as listed above) as well as a document outlining the tool for version 2.8 on the MOTOCODER website entitled “Installing J2ME MIDlet using MIDway Tool”.
Downloading a JAR file without a JAD In Motorola’s MIDP 2.0 implementation, a JAR file can be downloaded without a JAD. In this case, the user clicks on a link for a JAR file, the file is downloaded, and a confirmation will be obtained before the installation begins.
Installation and Deletion Status Reports The status (success or failure) of an installation, upgrade, or deletion of a MIDlet suite will be sent to the server according to the JSR 118 specification. If the status report cannot be sent, the MIDlet suite will still be enabled and the user will be allowed to use it. In some instances, if the status report cannot be sent, the MIDlet will be deleted by operator’s request.
API that are important to this implementation rather than restating entire JSR-205; refer the JSR 205 for more details. This section also provides Motorola specific requirements for WMA in addition to JSR-205.
JTWI is designed to be implemented on top of CLDC 1.0 or CLDC 1.1. The configuration provides the VM and the basic APIs of the application environment. If floating point capabilities are exposed to Java Applications, CLDC 1.1 (not suported on V3x) will be implemented.
• Digit Digit Digit: one of: • 0 1 2 3 4 5 6 7 8 9 NOTE: Hours will be between 0 and 23, and minutes will be between 00 and 50. For example, GMT +10 and GMT +0010 equates to ten hours and ten minutes ahead of GMT. When creating a TimeZone, the specified custom time zone ID is normalized in the following syntax: •...
Timer Resolution will permit an application to specify the values for the firstTime, delay, and period parameters of java.util.timer.schedule () methods with a distinguishable resolution of no more than 40 ms. Various factors (such as garbage collection) affect the ability to achieve this requirement. At least 80% of test attempts will meet the schedule resolution requirement to achieve acceptable conformance.
MIDP 2.0 Security specific content for JTWI The Motorola V3x follows the security policy outlined in the Security chapter of this developer guide. Wireless Messaging API 2.0 (JSR 205) This section describes the functionality that shall be implemented for the WMA.
others are specific to multimedia messaging. In addition to defined MMS headers, it also contains header parameters as defined by JSR 205. The message body may contain parts of any content type and MIME multipart is used to represent and encode a wide variety of media types for transmission via multimedia messaging.
Multimedia Message Service Center Address The MMSC address used for sending the messages should be made available using System.getProperty with property name “wireless.messaging.mms.mmsc”. Applications might need to obtain the Multimedia Message Service Center (MMSC) address to decide which recipient to use. For example, the application might need to do this because it is using service numbers for application servers which might not be consistent in all networks and MMSCs.
JSR 120 – Wireless Messaging Wireless Messaging API (WMA) Motorola has implemented certain features that are defined in the Wireless Messaging API (WMA) 1.0 and 1.3 versions. The complete specification document is defined in JSR 120. The JSR 120 specification states that developers can be provided access to send (MO –...
can be opened in either server or client mode. A server MessageConnection connection is opened by providing a URL that specifies an identifier (port number) for an application on the local device for incoming messages. (MessageConnection)Connector.open("sms://:6000"); Messages received with this identifier will then be delivered to the application by this connection.
Also, for sending, support for a minimum of three messages is supported. Motorola advises that developers will not send messages that will take up more than three SMS protocol messages unless the recipient’s device is known to support more.
Page 37
When a MIDlet is paused and is registered to receive messages on the port number of the incoming message, then the user will be queried to launch the MIDlet. If the MIDlet is not running and the Java Virtual Machine is not initialized, then a Push Registry will be used to initialize the Virtual Machine and launch the J2ME MIDlet.
16 bit reference number in concatenated messages Supported Number of concatenated messages. 30 messages in inbox, each can be concatenated from 3 parts. No limitation on outbox (immediately transmitted) Allow MIDlets to obtain the SMSC address with the Supported wireless.messaging.sms.smsc system property Table 7 List of Messaging features/classes supported The code sample 1 shows implementation of the JSR 120 Wireless Messaging API: Creation of client connection and for calling of method ‘numberOfSegments’...
Page 39
MessageConnection messageConnection = (MessageConnection)Connector.open("sms://:9532"); Creation of client connection with port number: MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274:9532"); Creation of client connection without port number: MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274"); Closing of connection: MessageConnection messageConnection.close(); Creation of SMS message: Message textMessage = messageConnection.newMessage(MessageConnection.TEXT_MESSAGE); Setting of payload text for text message: ((TextMessage)message).setPayloadText("Text Message");...
Page 40
Getting of address: String address = ((TextMessage)message).getAddress(); Getting of SMS service center address via calling of System.getProperty(): String addrSMSC = System.getProperty("wireless.messaging.sms.smsc"); Getting of timestamp for the message: Message message; System.out.println("Timestamp: " + message.getTimestamp().getTime()); Creation of client connection, creation of binary message, setting of payload for binary message and calling of method ‘numberOfSegments(Message)’...
Page 41
int num = connClient.numberOfSegments(binMsg); Setting of MessageListener and receiving of notifications about incoming messages: public class JSR120Sample1 extends MIDlet implements CommandListener { … JSR120Sample1Listener listener = new JSR120Sample1Listener(); … // open connection messageConnection = (MessageConnection)Connector.open("sms://:9532"); … // create message to send …...
Code Sample 1 JSR 120 Wireless Messaging API App Inbox Clean-up Actually, messages for MIDlets are stored in a separate App Inbox. This App Inbox is cleaned up automatically. The App Inbox capacity is 26 messages or 26 segments and when a new message is received for a certain port number, and the App Inbox capacity has reached its limit of 26 messages, then the messages in the App Inbox will be deleted in the following order: •...
JSR 135 – Mobile Media API JSR 135 Mobile Media API The JSR 135 Mobile Media APIs feature sets are defined for five different types of media. The media defined is as follows: • Tone Sequence • Sampled Audio • MIDI The new implementation of JSR 135 supports playback of more audio formats and recording of time-based media –...
player.realize(); catch (MediaException e) System.out.println("FAILED: exception for realize: " + e.toString()); // Acquire exclusive resources, fill buffers with media data player.prefetch(); catch (MediaException e) System.out.println("FAILED: exception for prefetch: " + e.toString()); // Start the media playback player.start(); catch (MediaException e) System.out.println("FAILED: exception for start: "...
ToneControl ToneControl is the interface to enable playback of a user-defined monotonic tone sequence. The JSR 135 Mobile Media API will implement public interface ToneControl. A tone sequence is specified as a list of non-tone duration pairs and user-defined sequence blocks and is packaged as an array of bytes. The setSequence() method is used to input the sequence to the ToneControl.
-setStopTime (long stopTime): Sets the media time at which you want the Player to stop. Manager Class Manager Class is the access point for obtaining system dependant resources such as players for multimedia processing. A Player is an object used to control and render media that is specific to the content type of the data.
audio/wav x-wav audio/mp3 x-mp3 mpeg3 x-mpeg3 mpeg x- mpeg AMR/MP4 audio/amr x-amr mp4 x-mp4 3gpp audio/m4a Table 9 Audio MIME types Refer to the table 10 for multimedia feature/class support for JSR 135: Feature/Class Implementation Media package found Supported Media control package Supported Media Protocol package Streaming not supported...
2 sounds can be prefetched at once. These exceptions are listed below: 1. Motorola provides the ability to play MIDI and WAV files simultaneously, but the MIDI track will be started first. The WAV file should have the following format: PCM 8,000 Khz;...
Page 49
getMinPitch() Gets the minimum playback pitch raise supported by the player. SHOULD implement a minimum playback pitch raise of 12,000 millisemitones. getPitch() Gets the current playback pitch raise. setPitch() Sets the relative pitch raise. FramePositioningC mapFrameToTime() Converts the given ontrol frame number to the (Implementation corresponding media...
Page 50
RecordControl All fields & methods RecordControl controls the recording of media from a Player. Supports all methods. Required for audio capture functionality. Video capture support is optional. RecordControl is a protected API as specified in the Security section. VideoControl All fields & methods. VideoControl controls (Implementation the display of video.
Manager.createPlayer(“http://webserver/tune.mid”) o File locators are supported for playback and capture of media. This is specific to Motorola J2ME implementations supporting file system API and not as per JSR-135. The support should be available through Manager and RecordControl implementations.
Supported Multimedia File Types The tables 12, 13 and 14 lists multimedia file types (with corresponding CODECs) that are supported in products that are JSR-135 compliant. The common guideline being all codecs and file types supported by native side should be accessible through JSR-135 implementation.
Video Media File Type CODEC Functionality H.263 (profile 0) or Playback and Capture MPEG 4 with or without AMR/AAC audio. H.263 (profile 0) or Playback and Capture MPEG 4 with or without AMR/AAC audio. RTF Streaming RTP/RTSP/RTCP Playback Streaming Engine Proprietary (Microsoft) Playback Proprietary (Microsoft)
Function Group Trusted Third Untrusted Manufacturer Operator Party Multimedia Record Ask once Per Always Ask, Ask Full Access Full Access App, Always Ask, once Per App, Never Ask, No Never Ask, No Access Access Table 15 Security Police Permissions The table 16 lists individual permissions within Multimedia Record function group. Permission Protocol Function Group...
JSR 75 – PIM and File Connection APIs This chapter defines the JSR-75 APIs implementation requirements that shall replace the earlier implemented File Connection API requirement, except for the Recent Calls API that shall still be supported by RecentCallRecord, RecentCallDialed and RecentCallReceived classes.
Page 56
• javax.microedition.pim.FieldEmptyException; • javax.microedition.pim.FieldFullException; • javax.microedition.pim.UnsupportedFieldException; • javax.microedition.pim.PIMItem; • javax.microedition.pim.Contact; • javax.microedition.pim.Event; • javax.microedition.pim.PIMList; • javax.microedition.pim.ContactList; • javax.microedition.pim.EventList. The implementation should include support of the following packages, classes, and interfaces with appropriate methods and fields of FileConnection API described in JSR- 75, related to javax.microedition.io.file: •...
Access Table 17 Permissions and Groups The PIM permissions should prohibit granting to a MIDlet suite which does not request them explicitly in the attributes MIDlet -Permissions or MIDlet -Permissions – Opt. The PIM package allows handling three types of lists: events, contacts and to do lists. Each one is stored in a specific database, respectively: event database, contact database and to do database.
File Connection API The primary goal of the FileConnection API is to provide access to file systems on devices and/or mounted removable memory cards supported by Motorola devices. Requirements File Connection API requirements will be replaced with the requirements below.
Trusted Third Function Group Untrusted Manufacturer Operator Party Always Ask, Ask User Data Read Once Per App, No Access Full Access Full Access Capability Never Ask, No Access Always Ask, Ask User Data Write Once Per App, No Access Full Access Full Access Capability Never Ask, No...
Page 60
openOutputStream(long byteOffset) The following javax.microedition.io.file.FileConnection methods should check for the “write permission”: • setFileConnection, when instance opened with WRITE; • setFileConnection, when instance opened with READ_WRITE. The bottom line prompt in the permission request dialog should include the name of the file or directory only for those protected API calls that have this information specified as a parameter.
JSR 184 requires a J2ME device supporting MIDP 2.0 and CLDC 1.1 at a minimum. Mobile 3D API The Motorola V3x contains full implementation of JSR 184 Mobile 3D API ). The Motorola V3x has also implemented the http://jcp.org/en/jsr/detail?id=184 following: •...
Mobile 3D API File Format Support The Motorola V3x supports both M3G and PNG file formats for loading 3D content. The V3x supports the standard .m3g and .png extensions for its file formats. Mime type and not extension will be used for identifying file type. In the case that the Mime type is not available, M3G files will be identified using the file identifier and PNG files using signature.
Figure 3 M3G Application Proccess Most M3G applications use an M3G resource file that contains all the information required to define the 3D resources, such as objects, their appearance, lights, cameras and animations, in a scene graph. The file must be loaded into memory where object properties can be interrogated and altered using the M3G API.
Figure 4 M3G Application Methods The World object contains the objects that define a complete 3D scene - geometry, textures, lights, cameras, and animations. The World object mediates access to the objects within the world. It can be passed as a block to the renderer, the Graphics3D class.
Figure 5 Typical MIDlet Structure Initializing the world The Loader class is used to initialize the world. It has two static methods: one takes in a byte array, while the other takes a named resource, such as a URI or an individual file in the JAR package.
Objects3D[] roots = Loader.load(getAppProperty("Content- 1")); // Assume the world is the first root node loaded. myWorld = (World) roots[0]; catch(Exception e) e.printStackTrace(); // Force a repaint so the update loop is started. myCanvas.repaint(); Code Sample 3 Initializing the world Using the Graphics3D object Using the Graphics3D is very straightforward.
Code Sample 4 Using the Graphics3D object The finally block makes sure that the target is released and the Graphics3D can be reused. The bindTarget call must be outside the try block, as it can throw exceptions that will cause releaseTarget to be called when a target has not been bound, and releaseTarget throwing an exception.
Page 68
Animations As well as controlling objects from code, scene designers can specify how objects should move under certain circumstances, and store this movement in “canned” or block animation sequences that can be triggered from code. Many object properties are animatable, including position, scale, orientation, color and textures. Each of these properties can be attached to a sequence of keyframes using an AnimationTrack.
• At least a JAR file size of 64 KB • At least a RMS data size of 30 KB Any Motorola JTWI device will implement the following and pass the corresponding TCK: • CLDC 1.0 or CLDC 1.1 •...
CLDC related content for JTWI JTWI is designed to be implemented on top of CLDC 1.0 or CLDC 1.1. The configuration provides the VM and the basic APIs of the application environment. If floating point capabilities are exposed to Java Applications, CLDC 1.1 will be implemented. The following CLDC requirements will be supported: •...
Digit: one of: • 0 1 2 3 4 5 6 7 8 9 NOTE: Hours will be between 0 and 23, and minutes will be between 00 and 50. For example, GMT +10 and GMT +0010 equates to ten hours and ten minutes ahead of GMT. When creating a TimeZone, the specified custom time zone ID is normalized in the following syntax: •...
garbage collection) affect the ability to achieve this requirement. At least 80% of test attempts will meet the schedule resolution requirement to achieve acceptable conformance. Minimum Number of Timers will allow a MIDlet to create a minimum of 5 simultaneously running Timers. This requirement is independent of the minimum specified by the Minimum Application Thread Count.
JSR 82 - Bluetooth API Overview JSR-82 covers the establishment of connections between devices for such applications as peer-to-peer gaming and Bluetooth pen use. There are two new requirements from this API. The javax.bluetooth package is needed to establish general Bluetooth connections. The javax.obex package is needed to provide Object Exchange support over Bluetooth and other transports.
The base security settings of the local device, including the security modes defined in the Bluetooth specification. Device Property Table The Table 19 lists the Motorola Bluetooth device properties for current products. These device properties must be available to the MIDlet suite. Device Property Description bluetooth.api.version...
Maximum number of service attributes to be retrieved per service record. The string will be in Base10 digits. This value is product dependent. Table 19 Motorola Bluetooth device properties Service Registration Service Registration is the portion of the BCC that controls the Service Discovery Database (SDDB).
• LocalDevice contains control settings of the local Bluetooth device. Settings can be read and changed. • RemoteDevice contains information (i.e. Bluetooth address and friendly name) about a remote Bluetooth device. • DeviceClass contains values of the device type and types of services the device supports.
• Before an SPP client can establish a connection to an SPP service, it must discover that service via service discovery. • A service discovery is not required if the SPP service had been discovered previously. Object Exchange (OBEX) OBEX is a protocol used for “pushing” and “pulling” objects (i.e. files or data) from one device to another.
External Events The following interruptions must be handled by kvm and MIDlet suite. Incoming Call Rules: Upon receiving an incoming call: • The Bluetooth connection shall remain active when the MIDlet is suspended. The Bluetooth connection shall be terminated when the user Ends the MIDlet. Incoming Message Rules: Upon receiving an incoming message:...
Pressing of End Key Figure 6 Pressing of End Key Rules: • Pressing the END key shall: o Terminate any ongoing Bluetooth connection. If possible, notify other device that session will be disconnected. • End MIDlet suite and kvm and return phone to Idle. Hardware Requirements Requires J2ME and Bluetooth wireless technology for the javax.bluetooth support.
MIDP 2.0 Security Model The following sections describe the MIDP 2.0 Default Security Model for the Motorola V3x handset. The chapter discusses the following topics: • Untrusted MIDlet suites and domains • Trusted MIDlet suites and domains • Permissions •...
package All constructors and inherited methods for the Supported MIDletStateChangeException class in the javax.microedition.midlet package Table 21 MIDP 2.0 Feature/Class Please note the domain configuration is selected upon agreement with the operator. Untrusted MIDlet Suites A MIDlet suite is untrusted when the origin or integrity of the JAR file cannot be trusted by the device.
User Permission Interaction Mode User permission for the Motorola V3x handsets is designed to allow the user the ability to either deny or grant access to the protected API or function using the following interaction modes (bolded term(s) is prompt displayed to the user):...
Policy The required trust model, the supported domain, and their corresponding structure will be contained in the default security policy for Motorola’s implementation for MIDP 2.0. Permissions will be defined for MIDlets relating to their domain. User permission types, as well as user prompts and notifications, will also be defined.
disabling root certificates. These third party root certificates will not be used to verify downloaded MIDlet suites. The user will be able to enable any disabled trusted third party protection domain root certificates. If disabled, the third party domain will no longer be associated with this certificate.
Security Policy for Protection Domains The table 24 lists the security policy by function groups for each domain. Under each domain are the settings allowed for that function within the given domain, while the bolded setting is the default setting. The Function Group is what will be displayed to the user when access is requested and when modifying the permissions in the menu.
MIDP 2.0 Specific Functions Permission Protocol Function Group javax.microedition.io.Connector.http http Data Network javax.microedition.io.Connector.https https Data Network javax.microedition.io.Connector.datagra Datagram Data Network javax.microedition.io.Connector.datagra datagram server (w/o host) Data mreceiver Network javax.microedition.io.Connector.socket Socket Data Network javax.microedition.io.Connector.servers server socket (w/ o host) Data ocket Network javax.microedition.io.Connector.ssl Data...
Specially designed certificates for code signing can be obtained from the manufacturer, operator, or certificate authority. Only root certificates stored on the handset will be supported by the Motorola V3x handset. Signer of MIDlet Suites The signer of a MIDlet suite can be the developer or an outside party that is responsible for distributing, supporting, or the billing of the MIDlet suite.
MIDlet suite, while the public key is provided as a x.509 certificate included in the application descriptor (JAD). MIDlet Attributes Used in Signing MIDlet Suites Attributes defined within the manifest of the JAR are protected by the signature. Attributes defined within the JAD are not protected or secured. Attributes that appear in the manifest (JAR file) will not be overridden by a different value in the JAD for all trusted MIDlets.
<n>:= a number equal to 1 for first certification path in the descriptor, or 1 greater than the previous number for additional certification paths. This defines the sequence in which the certificates are tested to see if the corresponding root certificate is on the device. <m>:= a number equal to 1 for the signer’s certificate in a certification path or 1 greater than the previous number for any subsequent intermediate certificates.
5. If attribute MIDlet-Certificate-<n>-<m> with <n> being greater than 1 are present and full certification path could not be established after verifying MIDlet- Certificate-<1>-<m> certificates, then repeat step 1 through 3 for the value <n> greater by 1 than the previous value. The Table 26 describes actions performed upon completion of signer certificate verification: Result...
“Application installed, but may have limited functionality.” JAD present but is JAR is Authentication can not be performed, will install JAR. MIDlet suite is unsigned treated as untrusted. The following error prompt will be shown, “Application installed, but may have limited functionality.” JAR signed but no root certificate Authentication can not be performed.
Page 93
Bound certificates will take advantage of the High Assurance Boot system implemented at Motorola. The main difference becomes relevant during the creation of the signing certificate for the developer. Below are the steps necessary for the developer to follow: •...
Page 94
MIDlet shall not be installed if the domain policy flexed on the target device doesn't include an appropriate domain. * SRP - MIDP 2.0 Security Recommended Practice for GSM/UMTS compliant devices.
Prevent Downloading of Large Java MIDlets Overview This feature makes flexible way of preventing the large JAR files OTA download. The current functionality is as follows: • The user is able to download any JAR file independently from its file size via the WAP browser.
• The system shall only download JAR files that are less than or equal to the maximum size specified in flex database. • The size of JAR accompanied by JAD files download shall be controlled by the flex element. Notification When the JAR file size exceeds the maximum value set, then the notice shall appear to inform the user that the JAR file download was aborted.
Launch native streaming video client from Java application Overview This feature delivers a capability for a Java application (MIDlet) to launch a native video streaming client on the handset. Possible use case may be for the user to use a MIDlet to access a streaming video programming channel on the network, select a channel to watch, and the MIDlet launching the native streaming video application to deliver the picture to user.
JSR 139 – CLDC 1.1 JSR 139 CLDC 1.1 is an incremental release of CLDC version 1.0. CLDC 1.1 is fully backwards compatible with CLDC 1.0. Implementation of CLDC 1.1 supports the following: Floating Point − Data Types float and double −...
Page 99
String intern () Returns a canonical representation for the string object Static String valueOf (float f) Returns the string representation of the float argument Static String valueOf (double Returns the string representation of the double argument Data Type Java.lang.Float New Class: Refer to CLDC Spec Classes for more details Java.lang.Double...
Page 100
sequence Int nextInt (int n) Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator’s sequence Java.lang.Math Static double E The double value that is closer than any other to e, the base of the natural logarithms Static double PI The double value that is closer...
Static double tan (double a) Returns the trigonometric tangent of angle Static double todegrees Converts an angle measured in (double angrad) radians to the equivalent angle measured in degrees Static double toradians Converts an angle measured in (double angdeg) degrees to the equivalent angle measured in radians Table 28 Additional classes, fields, and methods supported for CLDC 1.1 compliance...
Appendix A: Key Mapping Key Mapping for the V3x Table 29 identifies key names and corresponding Java assignments. All other keys are not processed by Java. Assignment NUM0 NUM1 NUM2 NUM3 NUM4 SELECT, followed by NUM5 NUM6 NUM7 NUM8 NUM9...
Table 30 identifies keys that will be assigned to game actions defined in GameCanvas class of MIDP 2.0. Action First Set Second Set Third Set Non-simultaneous keys Left Nav (LEFT) Right Nav (RIGHT) Nav (UP) Down Nav (DOWN) Game_A Game_B Game_C Game_D Game_Fire...
Appendix B: Memory Management Calculation Available Memory The available memory on the V3x is the following: • 64MB shared memory for MIDlet storage • 800 Kb Heap size...
The MOTOCODER developer program is online and able to provide access to Frequently Asked Questions around enabling technologies on Motorola products. Access to dynamic content based on questions from the Motorola J2ME developer community is available at the URL listed below.
Appendix F: Spec Sheet V3x V3x Spec Sheet Listed below are the spec sheets for the V3x. The spec sheets contain information regarding the following areas: • Technical Specifications • Key Features • J2ME Information • Motorola Developer Information •...
Page 107
MIDP v2.0 specifications: http://www.motocoder.com http://www.java.sun.com/products/midp Tools: CLDC v1.0 specifications: http://www.java.sun.com/products/cldc J2ME™ SDK version v4.0 Motorola Messaging Suite v1.1 WAP forum: http://www.wap.org MMS standards: http://www.3GPP.org Documentation: Purchase: Creating Media for the Motorola V3x Handset Visit the Motocoder Shop at http://www.motocoder.com/ Accessories: http://www.motorola.com/consumer...
Page 109
MOTOROLA and the Stylized M Logo are registered in the U.S. Patent & Trademark Office. All other product or service names are the property of their respective owners. Java and all other Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.