background image

 

 

93

 

By implementing Bound certificates, the process of creating and supporting developer-
specific flex files can be eliminated, which in turn simplifies the developer's environment, 
avoiding dependency from the flex tools. 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: 
 

 

The MIDlet developer generates a signing key that contains public and 
private keys. 

 

The developer will send the CSR, containing the developer’s public portion 
of the signing key, and the serial number(s) of the handset(s) the developer 
is using for testing, and the intended protected domains the MIDlet will be 
signed against to the Motorola Java Signing Center. 

 

The Signing Center constructs a developer certificate that includes the 
public key and a tag, that denotes this is a bound certificate. 

 

This bound certificate has the serial number for the unit appended to the 
certificate format and the resulting file is signed using the PCS Java CA. 

 

When the phone starts to load this type of certificate, it will identify the bound 
tag and pull the electronic number from the processor and use it to validate 
the signature of that certificate. Once this validation takes place, then the 
certificate will be used to validate the signature of the JAD file and if it 
passes, then it will install the JAR file on the product.  

 
This implementation incorporates information about the target domain into the 
bound certificate used for signing. This information should be submitted along 
with developer's CSR and bound tag(s) of the target device(s). If Java security 
manager has this information in runtime, it will be able to decide what domain to 
use for binding. 
 
Following are the requirements concerning these bound certificates: 
 

 

An X.509 bound certificate shall support at least 10 serial numbers 
supplied in the special bound tag extension. 

 

A bound MIDlet shall be successfully installed on the target device, if at 
least one of serial numbers supplied in the bound certificate coincides 
with the processor's serial number retrieved from the target device. 

 

A bound MIDlet shall not be installed if bound tag verification fails. 

 

A bound MIDlet, after successful bound tag check, shall be successfully 
mapped to the hardcoded, SRP* compliant manufacturer domain, if the 
bound certificate includes information about target developer's domain 
where all permissions have type allowed. 

 

A bound MIDlet, after successful bound tag check, shall be successfully 
mapped to the hardcoded, SRP* compliant 3rd party domain, if the 
bound certificate includes information about target developer's domain 
where all permissions have type user. 

 

A bound MIDlet, after successful bound tag check, shall be mapped to a 
domain in accordance with flexed policy file, if the bound certificate 
either doesn't include any information about target developer's domain 
or includes information about domain unknown to the device. The 

Summary of Contents for RAZR V3x

Page 1: ...Technical Manual V3x Handset J2ME Developer Guide Version 1 01 ...

Page 2: ...AILABLE 16 3 DEVELOPING AND PACKAGING J2ME APPLICATIONS 18 GUIDE TO DEVELOPMENT IN J2ME 18 4 DOWNLOADING APPLICATIONS 20 METHODS OF DOWNLOADING 20 ERROR LOGS 23 5 APPLICATION MANAGEMENT 25 DOWNLOADING A JAR FILE WITHOUT A JAD 25 MIDLET UPGRADE 25 INSTALLATION AND DELETION STATUS REPORTS 26 6 JSR 205 WMA 2 0 27 OVERVIEW 27 CLDC RELATED CONTENT FOR JTWI 28 MIDP 2 0 SPECIFIC INFORMATION FOR JTWI 29 W...

Page 3: ...PI 43 TONECONTROL 45 VOLUMECONTROL 45 STOPTIMECONTROL 45 MANAGER CLASS 46 AUDIO MEDIA 46 MOBILE MEDIA FEATURE SETS 48 Supported Multimedia File Types 52 9 JSR 75 PIM AND FILE CONNECTION APIS 55 PIM API 55 Requirements 55 Contact List 57 Event List 57 To Do List 58 FILE CONNECTION API 58 Requirements 58 10 JSR 184 3D API 61 OVERVIEW 61 MOBILE 3D API 61 Mobile 3D API File Format Support 62 Mobile 3D...

Page 4: ...Y POLICY FOR PROTECTION DOMAINS 86 DISPLAYING OF PERMISSIONS TO THE USER 88 TRUSTED MIDLET SUITES USING X 509 PKI 88 SIGNING A MIDLET SUITE 88 SIGNER OF MIDLET SUITES 88 MIDLET ATTRIBUTES USED IN SIGNING MIDLET SUITES 89 CREATING THE SIGNING CERTIFICATE 89 INSERTING CERTIFICATES INTO JAD 89 CREATING THE RSA SHA 1 SIGNATURE OF THE JAR 90 AUTHENTICATING A MIDLET SUITE 90 VERIFYING THE SIGNER CERTIFI...

Page 5: ...5 APPENDIX B MEMORY MANAGEMENT CALCULATION 104 AVAILABLE MEMORY 104 APPENDIX C FAQ 105 ONLINE FAQ 105 APPENDIX F SPEC SHEET V3X 106 V3X SPEC SHEET 106 APPENDIX H QUICK REFERENCE 108 ...

Page 6: ...f Figures FIGURE 1 JAVA PLATFORM 16 FIGURE 2 MIDWAY JAVA TOOL MENU 22 FIGURE 3 M3G APPLICATION PROCCESS 63 FIGURE 4 M3G APPLICATION METHODS 64 FIGURE 5 TYPICAL MIDLET STRUCTURE 65 FIGURE 6 PRESSING OF END KEY 80 ...

Page 7: ...ATS 46 TABLE 9 AUDIO MIME TYPES 47 TABLE 10 MULTIMEDIA FEATURE CLASS SUPPORT FOR JSR 135 48 TABLE 11 NEW PACKAGES CLASSES FIELDS AND METHODS IMPLEMENTED FOR JSR 135 51 TABLE 12 IMAGE MEDIA 52 TABLE 13 AUDIO MEDIA 52 TABLE 14 VIDEO MEDIA 53 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 PE...

Page 8: ...ICY 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 29 KEY MAPPING 102 TABLE 30 GAMECANVAS CLASS OF MIDP 2 0 103 ...

Page 9: ...9 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 ...

Page 10: ...experts will validate all Typicals for each customer application Motorola makes no warranty with regard to the products or services contained herein Implied warranties including without limitation the implied warranties of merchantability and fitness for a particular purpose are given only if specifically required by applicable law Otherwise they are specifically excluded No warranty is made as to...

Page 11: ...or any other application in which the failure of the Motorola product or service could create a situation where personal injury or death may occur Should the buyer purchase or use Motorola products or services for any such unintended or unauthorized application buyer shall release indemnify and hold Motorola and its officers employees subsidiaries affiliates and distributors harmless against all c...

Page 12: ... with the explicit purpose of creating a bond between two devices This differs from the authenticate using a passkey procedure where the user is requested to enter a passkey during the establishment of the link BT Bluetooth CLDC Connected Limited Device Configuration DRM Digital Rights Management GPS Global Positioning System GPRS General Packet Radio Service GSM Global System for Mobile Communica...

Page 13: ...ce SAA SMS Access API Trusted Device A paired device that is explicitly marked as trusted UI User Interface VBR Variable Bit Rate VM Virtual Machine WAV Wave Form Audio Table 3 Definitions Abbreviations Acronyms Document Overview This developer s guide is organized into the following chapters and appendixes Chapter 1 Introduction this chapter has general information about this document including p...

Page 14: ... devices for such applications as peer to peer gaming and Bluetooth pen use Chapter 13 MIDP 2 0 Security Model this chapter describes the MIDP 2 0 default security model Chapter 14 Prevent Downloading of Large Java MIDlets This feature makes flexible way of preventing the large JAR files OTA download Chapter 15 Launch native streaming video client from Java application This chapter how the feature...

Page 15: ...applications for the V3x The Java 2 Platform Micro Edition J2ME The J2ME platform is a new very small application environment It is a framework for the deployment and use of Java technology in small devices such as cell phones and pagers It includes a set of APIs and a virtual machine that is designed in a modular fashion allowing for scalability among a wide range of devices The J2ME architecture...

Page 16: ...vered by the CLDC and MIDP APIs is left for individual OEMs to implement and support By adding to the standard APIs manufacturers can allow developers to access and take advantage of the unique functionality of their handsets 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 ...

Page 17: ...17 Persistent storage Sounds Timers User Interface File Image Support PNG JPEG GIF Additional Functionality WMA JSR 120 MMA JSR 135 JSR 205 JSR 184 JSR 185 JSR 82 JSR 118 ...

Page 18: ...g URLs for more information http www motocoder com http www java sun com j2me http www corej2me com http www javaworld com As an introduction brief details of J2ME are explained below The MIDlet will consist of two core specifications namely Connected Limited Device Configuration CLDC and Mobile Information Device Profile MIDP Both of these specifications Java Specification Requests can be located...

Page 19: ...writing 1 4 1_04 to Integrated Development Environments IDEs which can be free or purchased These IDEs come from a range of sources such as Sun IBM Metrowerks and Borland to name a few 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 SD...

Page 20: ... 2 0 the need for a JAD file before download is not required so the JAR file can be downloaded directly The information about the MIDlet will be pulled from the manifest file The transport mechanism used to download the file will be one of two depending on the support from the network operators WAP Gateway and the size of file requested HTTP Range see specification RFC 2068 at http www rfc editor ...

Page 21: ...oes not match with specified size it displays Failed Invalid File Upon time out the handset goes back to browser When downloading is done the handset displays a transient notice Download Completed and starts to install the application Upon completing installation the handset displays a transient notice Installed and returns to Browser after time out If the MANIFEST file is wrong the handset displa...

Page 22: ... 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 Figure 2 MIDway Java Tool menu The USER AGENT String The Table 4 describes USER_AGENT strings associated with Motorola devices Motorola Device USER_AGENT STRING V3x User Agent MOT V3x xx xx xxR MIB 2 2 1 Profile MIDP 2 0 Configuration ...

Page 23: ...dated JAD signature verification failed Unknown error during JAD validation See Details field in the dialog for information about specific error 903 Loss of Service Insufficient Storage OTA JAR Download Insufficient data space to temporarily store the JAR file 901 Insufficient Memory Application Already Exists OTA JAR Download MIDlet version numbers are identical 905 Attribute Mismatch Different V...

Page 24: ...ion not authorized Application Expired MIDlet Launching Security Certificates expired or removed Application Error MIDlet Execution Authorization failure during MIDlet execution Incorrect MIDlet Table 5 Error Logs ...

Page 25: ...g a MIDlet upgrade When these rules cannot determine if the RMS should be preserved the user will be given an option to preserve the data The following conditions are used to determine if data can be saved The data is saved if the new MIDlet version is the same or newer and if the new MIDlet data space requirements is the same or more than the current MIDlet The data is not saved if the new MIDlet...

Page 26: ... in the prompt Prompt for user approval when the user has chosen to download an application that is identical to or an older version of an application currently in the handset Unauthorized MIDlets will not have access to any restricted function call AMS will check the JAD for security indicated every time a download is initiated Application descriptor or MIDlet fails the security check the AMS wil...

Page 27: ...wing minimum hardware requirements in addition to the minimum requirements specified in MIDP 2 0 At least a 125 x 125 pixels screen size as returned by full screen mode Canvas getHeight and Canvas getWidth At least a color depth of 4096 colors 12 bit as returned by Display numColors Pixel shape of 1 1 ratio At least a Java Heap Size of 512 KB Sound mixer with at least 2 sounds At least a JAD file ...

Page 28: ...encodings If not preferred name has been defined the registered name will be used i e UTF 16 Character Properties will provide support for character properties and case conversions for the characters in the Basic Latin and Latin 1 Supplement blocks of Unicode 3 0 Other Unicode character blocks will be supported as necessary Unicode Version will support Unicode characters Character information is b...

Page 29: ...r MIDP 2 0 will be supported Record Store Minimum will permit a MIDlet suite to create at least 5 independent RecordStores This requirement does not intend to mandate that memory be reserved for these Record Stores but it will be possible to create the RecordStores if the required memory is available HTTP Support for Media Content will provide support for HTTP 1 1 for all supported media types HTT...

Page 30: ...aint of the TextBox or TextField is TextField PHONENUMBER the names in the Phonebook will be displayed in the Insert Phonenumber screen Supported characters in TextField and TextBox TextBox and TextField with input constraint TextField ANY will support inputting all the characters listed in JSR 185 Supported characters in EMAILADDR and URL Fields Class javax microedition lcdui TextBox and javax mi...

Page 31: ...ations 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 This section highlights implementation details with respect to the messaging API that are important to this implementation rather tha...

Page 32: ...is API The default type of message is multipart related If the content type header does not contain start parameter the message type is asumed to be multipart mixed This section describes Multipart Message and its related classes Messaging framework is described in the JSR 120 chapter of this developer guide MultipartMessage The WMA shall implement the MultipartMessage an interface representing a ...

Page 33: ...ype header field Messages can be sent using this API via client or server type Message Connections refer section D 2 2 of JSR 205 specification The application specifies Application ID when opening the server mode MessageConnection The receiving application running on a device is identified with the application id included in the message The maximum number of Application IDs shall be limited by th...

Page 34: ... A simple example of the WMA is the ability of two J2ME applications using SMS to communicate game moves running on the handsets This can take the form of chess moves being passed between two players via the WMA Motorola in this implementation of the specification supports the following features Creating an SMS Sending an SMS Receiving an SMS Viewing an SMS Deleting an SMS SMS Client Mode and Serv...

Page 35: ...ssage identifying a port number is sent from a server type MessageConnection the originating port number in the message is set to the port number of the MessageConnection This allows the recipient to send a response to the message that will be received by this MessageConnection However when a client type MessageConnection is used for sending a message with a port number the originating port number...

Page 36: ...ital cellular telecommunications system Phase 2 Technical realization of the Short Message Service SMS ETSI 2000 Motorola s implementation uses the concatenation feature specified in sections 9 2 3 24 1 and 9 2 3 24 8 of the GSM 03 40 standard for messages that the Java application sends that are too long to fit in a single SMS protocol message This implementation automatically concatenates the re...

Page 37: ...R 120 API Specifically APIs defined in the javax wireless messaging package will be implemented with regards to the GSM SMS Adaptor Supported Removal of SMS messages Supported Terminated SMS removal any user prompts handled by MIDlet Supported Originated SMS removal any user prompts handled by MIDlet Supported All fields methods and inherited methods for the Connector Class in the javax microediti...

Page 38: ... numberOfSegments for Binary message BinaryMessage binMsg MessageConnection connClient int MsgLength 140 Create connection for client mode connClient MessageConnection Connector open sms outAddr Create BinaryMessage for client mode binMsg BinaryMessage connClient newMessage MessageConnection BINARY _MESSAGE Create BINARY of size bytes for BinaryMsg public byte createBinary int size int nextByte 0 ...

Page 39: ...e textMessage messageConnection newMessage MessageConnection TEXT_MESSAGE Setting of payload text for text message TextMessage message setPayloadText Text Message Getting of payload text of received text message receivedText TextMessage receivedMessage getPayloadText Getting of payload data of received binary message BinaryMessage binMsg byte payloadData binMsg getPayloadData Setting of address wi...

Page 40: ...hod numberOfSegments Message for Binary message BinaryMessage binMsg MessageConnection connClient int MsgLength 140 Create connection for client mode connClient MessageConnection Connector open sms outAddr Create BinaryMessage for client mode binMsg BinaryMessage connClient newMessage MessageConnection BINARY _MESSAGE Create BINARY of size bytes for BinaryMsg public byte createBinary int size int ...

Page 41: ...he message to send messageToSend setAddress sms 18473297274 9532 send message via invocation of send method set address for the message to receive receivedMessage setAddress sms 9532 receive message via invocation of receive method class JSR120Sample1Listener implements MessageListener Runnable private int messages 0 public void notifyIncomingMessage MessageConnection connection System out println...

Page 42: ...s any unread messages in the App Inbox then the oldest unread message in the buffer relative to that port number WILL be deleted next If a certain port number currently has no messages in the App Inbox then the oldest unread message in the buffer relative to all port numbers will be deleted next When the maximum number of messages is reached and the phone has reached memory full condition no new m...

Page 43: ...as still image capture When a player is created for a particular type it will follow the guidelines and control types listed in the sections outlined below The code sample 2 shows implementation of the JSR 135 Mobile Media API JSR 135 Player player Create a media player associate it with a stream containing media data try player Manager createPlayer getClass getResourceAsStream MP3 mp3 audio mp3 c...

Page 44: ...diaException e System out println FAILED exception for prefetch e toString Start the media playback try player start catch MediaException e System out println FAILED exception for start e toString Pause the media playback try player stop catch MediaException e System out println FAILED exception for stop e toString Release the resources player close Code Sample 2 JSR 135 Mobile Media API ...

Page 45: ... to be mapped to the volume level on the phone 0 7 Specifying Volume in the Level Scale specifies volume in a linear scale It ranges from 0 100 where 0 represents silence and 100 represents the highest volume available Mute setting mute on or off does not change the volume level returned by the getLevel If mute is on no audio signal is produced by the Player If mute is off an audio signal is produ...

Page 46: ...rs For convenience Manager also provides a simplified method to generate simple tones Primarily the Multimedia API will provide a way to check available supported content types Audio Media The table 8 shows multimedia file formats are supported File Type CODEC WAV PCM WAV ADPCM SP MIDI General MIDI MIDI Type 1 General MIDI iMelody IMelody CTG CTG MP3 MPEG 1 layer III AMR AMR BAS General MIDI Table...

Page 47: ...stener OEM event types for the PlayerListener interface Standard types only All fields methods and inherited methods for the Manager Class in javax microedition media Supported TONE_DEVICE_LOCATOR support in the Manager class of javax microedition media Supported TONE_DEVICE_LOCATOR content type will be audio x tone seq Supported TONE_DEVICE_LOCATOR media locator will be device tone Supported All ...

Page 48: ...played simultaneously Mobile Media Feature Sets The table 11 lists the new packages classes fields and methods implemented for JSR 135 Appropriate exception shall be generated if the called method is not supported by the implementation If a method is accessed without proper security permissions security exception shall be thrown Packages Classes Methods Comments Requirements setTempo Sets the curr...

Page 49: ...ch Sets the relative pitch raise mapFrameToTime Converts the given frame number to the corresponding media time mapTimeToFrame Converts the given media time to the corresponding frame number seek Seeks to a given video frame FramePositioningC ontrol Implementation guidance SHOULD skip Skips a given number of frames from the current position MIDIControl Implementation guidance SHOULD All fields met...

Page 50: ...er for video file stream playback it is not mandatory to support get Snap Shot method VideoControl controls the display of video A Player which supports the playback of video WILL provide a VideoControl via its getControl and getControls methods MetaDataControl Implement all fields and methods Support title copyright data author keys for CODECs supporting these keys Player All fields and methods S...

Page 51: ...for streaming media on devices supporting real time streaming using RTSP This support will be available for audio and video streaming through Manager for playback media stream o HTTP Locators are supported for playing back media over network connections This support should be available through Manager implementation e g Manager createPlayer http webserver tune mid o File locators are supported for...

Page 52: ...ble through JSR 135 implementation The implementation of JSR 135 and these tables is updated every time a new file type and or CODEC is released Image Media File Type CODEC Functionality JPEG JFIF JPEG Capture JPEG EXIF JPEG Capture Table 12 Image Media Audio Media File Type CODEC Functionality AAC AAC Playback WMA Proprietary Microsoft Playback AU PCM Mu law Playback AIFF PCM Playback XMF General...

Page 53: ... Media Canned Sounds The implementation supports predefined sounds which can be used by applications like games and alerts Each predefined sound has an associated locator which are used by the application e g Manager createPlayer CANNED_SOUND_ALARM Security Mobile Media API follows MIDP 2 0 security model Recording functionality APIs need to be protected Trusted third party and untrusted applicati...

Page 54: ...ever Ask No Access Full Access Full Access Table 15 Security Police Permissions The table 16 lists individual permissions within Multimedia Record function group Permission Protocol Function Group javax microedition media control RecordControl record RecordControl startReco rd MultimediaRecord Table 16 Individual permissions within Multimedia Record function group ...

Page 55: ...onal Information Management PIM data on J2ME enabled devices PIM data is defined as information included in address book calendar application and to do list applications To Do lists will be supported in the next versions of the API This chapter still details requirements for implementing Personal Information Management PIM and File Connection APIs specified in JSR 75 for J2ME enabled mobile device...

Page 56: ...ing the contact information available on the device hereinafter just contact read permission javax microedition pim ContactList write should enable updating the contact information available on the device hereinafter just contact write permission javax microedition pim ContactList write should enable updating the contact information available on the device hereinafter just contact write permission...

Page 57: ...o manipulate actual ContactList as specified in ContactList class section of JSR 75 The implementation should provide access to all available actual PIM lists for the ContactList list type At least the following fields should be supported UID NICKNAME TEL EMAIL FORMATTED_NAME BIRTHDAY ADDR_STREET ADDR_LOCALI TY ADDR_REGION ADDR_POSTALCODE ADDR_COUNTRY ADDR_EXTRA PHOTO_URL At least the following at...

Page 58: ...urity model for accessing the FileConnection APIs as defined in JSR 75 File Connection API should be accessible to manufacturer and operator domain MIDlets subject to security restrictions Connection API should prohibit the modification or removing the files and directories marked with the system attribute Call to System getProperty with key microedition io file FileConnection version should retur...

Page 59: ...leConnection listRoots openDataOutputStream openOutputStream PIMList items all methods PIMList itemsByCategory PIMList addCategory PIMList deleteCategory PIMList renameCategory PIMItem commit ContactList removeContact EventList removeEvent EventList items The following javax microedition io Connector methods should check for the read permission open file open file Connector READ open file Connecto...

Page 60: ...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 The prompt prefix should be File Location File Name for the following methods open openDataInputStream openInputStream openDataOutputStream openOutputStream File Location would represent either Phone when the file is stored on the phone C...

Page 61: ...ull implementation of JSR 184 Mobile 3D API http jcp org en jsr detail id 184 The Motorola V3x has also implemented the following Call to System getProperty with key microedition m3g version will return 1 0 otherwise null will be returned Floating point format for input and output is the standard IEEE float having a 8 bit exponent and a 24 bit mantissa normalized to 1 0 2 0 Implementation will ens...

Page 62: ...ollowing the whole 3D scene can be stored in a very small file size typically 50 150K allowing you to create games and applications in under 256K the application can change the properties such as position rotation scale color and textures of objects in the scene based on user interaction with the device the application can switch between cameras to get different views onto the scene the rendered i...

Page 63: ... file must be loaded into memory where object properties can be interrogated and altered using the M3G API Alternatively all objects can be created from code although this is likely to be slower and limits creativity for designers Simple MIDlets The simplest application consists of an M3G file that is loaded into the application using the M3G Loader class which is then passed to a Graphics3D objec...

Page 64: ...contain as little as a single object and multiple files can be merged together on the device or you can put everything into a single file The rendering class Graphics3D by analogy to the MIDP Graphics class takes a whole scene or part of a scene graph and renders a view onto that scene using the current camera and lighting setup This view can be to the screen to a MIDP image or to a texture in the...

Page 65: ...owing example calls Loader load and passes it an M3G file from the JAR file using a property in the JAD file Alternatively you could specify a URI for example Object3D roots Loader load http www example com m3g simple m3g 0 The example assumes that there is only one root node in the scene which will be the world object If the M3G file has multiple root nodes the code must be changed to reflect thi...

Page 66: ...started myCanvas repaint Code Sample 3 Initializing the world Using the Graphics3D object Using the Graphics3D is very straightforward Get the Graphics3D instance bind a target to it render everything and release the target public class myCanvas extends Canvas Graphics3D myG3D Graphics3D getInstance public void paint Graphics g myG3D bindTarget g try myG3D render myWorld finally myG3D releaseTarge...

Page 67: ... largely makes the application logic independent of the detailed structure of the scene final int PERSON_OBJECT_ID 339929883 Node personNode Node theWorld find PERSON_OBJECT_ID If you need to find many objects or you don t have a fixed ID then you can follow the hierarchy explicitly using the Object3D getReferences or Group getChild methods static void traverseDescendants Object3D obj int numRefer...

Page 68: ...eed to be updated If nothing is happening in the scene you do not have to continually redraw the screen reducing the processor load and extending battery life Similarly simple scenes on powerful hardware may run very fast by restricting the frame rate to something reasonable you can extend battery life and are more friendly to background processes The animation subsystem has no memory so time is c...

Page 69: ...t least a 125 x 125 pixels screen size as returned by full screen mode Canvas getHeight and Canvas getWidth At least a color depth of 4096 colors 12 bit as returned by Display numColors Pixel shape of 1 1 ratio At least a Java Heap Size of 512 KB Sound mixer with at least 2 sounds At least a JAD file size of 5 KB At least a JAR file size of 64 KB At least a RMS data size of 30 KB Any Motorola JTWI...

Page 70: ... preferred name has been defined the registered name will be used i e UTF 16 Character Properties will provide support for character properties and case conversions for the characters in the Basic Latin and Latin 1 Supplement blocks of Unicode 3 0 Other Unicode character blocks will be supported as necessary Unicode Version will support Unicode characters Character information is based on the Unic...

Page 71: ...es This requirement does not intend to mandate that memory be reserved for these Record Stores but it will be possible to create the RecordStores if the required memory is available HTTP Support for Media Content will provide support for HTTP 1 1 for all supported media types HTTP 1 1 conformance will match the MIDP 2 0 specification See package javax microedition io for specific requirements JPEG...

Page 72: ...en Supported characters in TextField and TextBox TextBox and TextField with input constraint TextField ANY will support inputting all the characters listed in JSR 185 Supported characters in EMAILADDR and URL Fields Class javax microedition lcdui TextBox and javax microedition lcdui TextField with either of the constraints TextField EMAILADDR or TextField URL will allow the same characters to be i...

Page 73: ...ll be implemented and is required for controlling the colume of MIDI file playback JPEG encoding in video snapshots will be supported if the handset supports the video feature set and video image capture Tone sequence file format will be supported Tone sequences provide an additional simple format for supporting the audio needs of many types of games and other applications MIDP 2 0 Security specif...

Page 74: ...ecause OBEX is not limited to Bluetooth only it resides as a separate package but must be supported by this API JSR 82 Bluetooth API The complete requirements are defined in Java APIs for BluetoothTM Wireless Technology JSR 82 The requirements listed here are a summary and specify how the API relates to the native Bluetooth implementation on the phone System Requirements JSR 82 utilizes Bluetooth ...

Page 75: ...n 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 The version of the Java APIs for Bluetooth wireless technology that is supported For this version it will be set to 1 0 bluetooth l2cap receiveMTU max The ...

Page 76: ... portion of the BCC that controls the Service Discovery Database SDDB The SDDB is a list of available services on the local device Services registered in the SDDB by a MIDlet will be removed when the connection notifier is closed or when the MIDlet terminates The implementation must support run before connect services Connectable Mode The following rules must be supported while the phone is in con...

Page 77: ...her devices via specific Bluetooth profiles or protocols Bluetooth connections established using this API are based on the following three protocols RFCOMM L2CAP OBEX Additionally other profiles can be built upon these three basic protocols but the profiles would have to be emulated by the MIDlet suite The implementation must support opening a connection with either a server connection URL or a cl...

Page 78: ...uetooth IrDA and USB Rules The following OBEX operations MUST be supported by the API o CONNECT o PUT o GET o DISCONNECT o SETPATH o ABORT o CREATE EMPTY o PUT DELETE OBEX MUST support Bluetooth OBEX MAY support the following transports where available o IrDA o TCP IP OBEX must support authentication Security Policy Applications MUST be granted a permission to perform any requested operation using...

Page 79: ...the user Ends the MIDlet Incoming Message Rules Upon receiving an incoming message The Bluetooth connection shall remain active when the MIDlet is suspended The Bluetooth connection shall be terminated when the user Ends the MIDlet Alarm Datebook Behaviour Rules The Alarm Datebook behavior when a MIDlet is running The Bluetooth connection shall remain active when the MIDlet is suspended The Blueto...

Page 80: ...return phone to Idle Hardware Requirements Requires J2ME and Bluetooth wireless technology for the javax bluetooth support Requires J2ME and at least one of the following Bluetooth IrDA USB or HTTP for javax obex support Interoperability Requirements SDK Developer Style Guide Requirements The following table lists the suggested types of screens and text used for user feedback Examples of each scre...

Page 81: ...ficateException class in the javax microedition pki package Supported MIDlet Certificate attribute in the JAD Supported A MIDlet suite will be authenticated as stated in Trusted MIDletSuites using X 509 of MIDP 2 0 minus all root certificates processes and references Supported Verification of SHA 1 signatures with a MD5 message digest algorithm Supported Only one signature in the MIDlet Jar RSA SH...

Page 82: ...ted APIs or functions is not allowed or allowed with explicit confirmation from the user Untrusted Domain Any MIDlet suites that are unsigned will belong to the untrusted domain Untrusted domains handsets will allow without explicit confirmation untrusted MIDlet suites access to the following APIs javax microedition rms RMS APIs javax microedition midlet MIDlet Lifecycle APIs javax microedition lc...

Page 83: ...nted MIDlets do not need to be aware of the security policy except for security exceptions that will occur when accessing APIs Untrusted all MIDlet suites that are unsigned will belong to this domain Permissions within the above domains will authorize access to the protected APIs or functions These domains will consist of a set of Allowed and User permissions that will be granted to the MIDlet sui...

Page 84: ...he ability to deny access to the protected API or function The user will make their decision based on the user friendly description of the requested permissions provided for them The Permissions menu allows the user to configure permission settings for each MIDlet when the VM is not running This menu is synchronized with available run time options Implementation based on Recommended Security Polic...

Page 85: ...uto Start Launch MIDlet names OK Connectivity Options Make a local connection OK User Data Read Capability Read phonebook data OK User Data Write Capability Modify phonebook data OK App Data Sharing Share data between apps OK Table 22 Trusted 3rd Party Domain The radio button messages will appear as follows and mapped to the permission types as shown in the table 23 MIDP 2 0 Permission Types Runti...

Page 86: ...is able to change from the default setting Function Group Trusted Third Party Untrusted Manufacturer Operator Data Network Ask Once Per App Always Ask Never Ask No Access Always Ask Ask Once Per App No Access Full Access Full Access Messaging Always Ask No Access Always Ask No Access Full Access Full Access App Auto Start Ask Once Per App Always Ask Never Ask No Access Ask Once Per App Always Ask ...

Page 87: ...on io Connector comm Comm Connectivit y Options javax microedition io PushRegistry All App Auto Start Wireless Messaging API JSR 120 javax wireless messaging sms send Messaging javax wireless messaging sms receive Messaging javax microedition io Connector sms Messaging javax wireless messaging cbs receive Messaging Multimedia Recording javax microedition media RecordControl startRecord RecordContr...

Page 88: ... domain it will use the permission defined in the protection domain to grant the MIDlet suite access to the defined protected APIs or functions The MIDlet suite is protected by signing the JAR file The signature and certificates are added to the application descriptor JAD as attributes and will be used by the handset to verify the signature Authentication is complete when the handset uses the root...

Page 89: ...ted in the manifest the installation will be rejected Methods 1 MIDlet getAppProperty will return the attribute value from the manifest JAR if one id defined If an attribute value is not defined the attribute value will return from the application descriptor JAD if present Creating the Signing Certificate The signer of the certificate will be made aware of the authorization policy for the handset ...

Page 90: ... of the MIDlet Authenticating a MIDlet Suite When a MIDlet suite is downloaded the handset will check the JAD attribute MIDlet Jar RSA SHA1 If this attribute is present the JAR will be authenticated by verifying the signer certificates and JAR signature as described MIDlet suites with application descriptors that do not have the attributes previously stated will be installed and invoked as untrust...

Page 91: ...Actions performed of signer certificate verification Verifying the MIDlet Suite JAR The following are the steps taken to verify the MIDlet suite JAR 1 Get the public key from the verified signer certificate 2 Get the MIDlet JAR RSA SHA1 attribute from the JAD 3 Decode the attribute value from base64 yielding a PKCS 1 signature and refer to RFC 2437 for more detail 4 Use the signer s public key sig...

Page 92: ...wed The following error prompt will be shown Authentication Error Application not installed JAR signed certificate path validated but signature verification fails JAD rejected JAR installation will not be allowed The following error prompt will be shown Authentication Error Application not installed Parsing of security attributes in JAD fails JAD rejected JAR installation will not be allowed The f...

Page 93: ...and if it passes then it will install the JAR file on the product This implementation incorporates information about the target domain into the bound certificate used for signing This information should be submitted along with developer s CSR and bound tag s of the target device s If Java security manager has this information in runtime it will be able to decide what domain to use for binding Foll...

Page 94: ...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 ...

Page 95: ...x database element to limit the maximum size of the JAR file The appropriate notice shall be displayed to inform the user that the maximum JAR file size is exceeded and downloading is rejected The maximum JAR file size value shall come directly from a customer requirement or product team There may be 2 types of MIDlets download JAR only file download JAR JAD file download This feature does not con...

Page 96: ...ice shall appear to inform the user that the JAR file download was aborted When the JAR file size exceeds the maximum value set and the downloading was aborted then the following notification report shall be sent to the server 901 Insufficient Memory When the size of the JAR file exceeds the maximum value the JAVA AMS shall initiate the transient notice Backward Compatibility Flexing The maximum J...

Page 97: ...port for a MIDlet to launch the streaming video native application User SHALL be prompt to approve the connection to the network using the existing prompt The streaming video application SHALL start streaming from the URL passed by the MIDlet as soon as it up and running without user intervention The streaming client SHALL use the dedicated streaming APN configuration to access the content The MID...

Page 98: ...pport of thread objects to be compliant with J2SE requires the addition of Thread getName and a few new contructors The following table lists the additional classes fields and methods supported for CLDC 1 1 compliance Classes Additional Fields Methods Comments System Classes Java lang Thread Thread Runnable target String name Allocates a new Thread object with the given target and name Thread Stri...

Page 99: ... GMT Protected abstract void ComputeFields Converts the current millisecond time value to field values in fields Protected abstract void ComputeTime Converts the current field values in fields to the millisecond time value time Java lang Date String toString Converts this date object to a String of the form Dow mon dd hh mm ss zzz yyyy Exception and Error Classes Java lang NoClass DefFoundError Ne...

Page 100: ...lest closest to negative infinity double value that is not less than the argument and is equal to a mathematical integer Static double cos double a Returns the trigonometric cosine of an angle Static double floor double a Returns the largest closest to positive infinity double value that is not greater than the argument and is equal to a mathematical integer Static double max double a double b Ret...

Page 101: ...s double angrad Converts an angle measured in radians to the equivalent angle measured in degrees Static double toradians double angdeg Converts an angle measured in degrees to the equivalent angle measured in radians Table 28 Additional classes fields and methods supported for CLDC 1 1 compliance ...

Page 102: ...6 7 NUM7 8 NUM8 9 NUM9 STAR ASTERISK POUND POUND JOYSTICK LEFT LEFT JOYSTICK RIGHT RIGHT JOYSTICK UP UP JOYSTICK DOWN DOWN SCROLL UP UP SCROLL DOWN DOWN SOFTKEY 1 SOFT1 SOFTKEY 2 SOFT2 MENU SOFT3 MENU SEND SELECT Also call placed if pressed on lcdui TextField or lcdui TextBox with PHONENUMBER constraint set CENTER SELECT SELECT END Handled according to Motorola specification Pause End Resume Backg...

Page 103: ...e actions defined in GameCanvas class of MIDP 2 0 Action First Set Second Set Third Set Non simultaneous keys Left Nav LEFT 4 Right Nav RIGHT 6 Up Nav UP 2 Down Nav DOWN 8 Game_A 0 Game_B 1 Game_C 3 Game_D 5 Game_Fire 9 7 Table 30 GameCanvas class of MIDP 2 0 ...

Page 104: ...104 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 ...

Page 105: ...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 http www motocoder com ...

Page 106: ...ec 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 Tools Other Related Information ...

Page 107: ...um record store size 64 K MIDlet storage available 64MB Interface connections HTTP Socket UDP Serial port Maximum number of sockets 4 Supported image formats PNG JPEG Double buffering Supported Encoding schemes ISO8859_1 ISO10646 Input methods Multitap iTAP Additional API s JSR 75 JSR 82 JSR 84 JSR 120 JSR 135 JSR 139 JSR 184 JSR 185 JSR 205 Audio MP3 AAC AAC XMF RA v9 MIDI WAV Motorola Developer ...

Page 108: ...4 26 27 28 66 70 82 89 90 91 92 93 94 JAR 13 14 21 22 24 26 28 JSR 14 35 36 37 38 39 43 44 46 47 48 49 52 53 62 70 71 72 73 74 88 JSR 118 19 26 27 28 JSR 120 18 28 31 33 108 Memory 14 22 24 58 105 MIDP 11 14 17 19 21 23 26 27 28 30 32 54 56 62 63 65 70 72 74 82 83 85 86 88 90 91 93 95 104 108 SMS 31 35 36 37 38 40 41 73 108 WMA 14 18 28 31 32 33 34 35 53 73 ...

Page 109: ...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 Motorola Inc 2005 2006 ...

Reviews: