background image

bottom of the dialog.

BACK from this message will take the user back to the browser page
from which the user selected the MIDlet to download.

Figure 14 Mot-Data-Space & Mot-Program-Space attributes are not present or are

incorrect

If Mot-Data-Space-Requirements and Mot-Program-Space-Requirements
JAD attributes are not present in the JAD file, the handset can not
determine how much memory to free and will display the above help
dialog.

The Help dialog will include a 'More' right softkey label (for those
products in which not all the help data can be displayed on a single
screen). This label should disappear when the user has scrolled to the
bottom of the dialog.

All rules stated in the previous figure must also be followed for the
above stated prompt.

Java ME Developer Guide
Chapter 19 - Downloading MIDlet through Browser

[141/201]

DRAFT - Subject to Change

Summary of Contents for MOTORAZR maxx V6

Page 1: ...MOTORAZR maxx V6 Java ME Developer Guide Version 00 02 DRAFT Subject to Change ...

Page 2: ...AILABLE 20 3 Developing and Packaging Java ME Applications 22 3 1 GUIDE TO DEVELOPMENT IN JAVA ME 22 3 1 1 RECOGNIZING THE PHONE CORE SPECIFICATIONS 23 4 Downloading Applications 25 4 1 METHODS OF DOWNLOADING 25 4 2 ERROR LOGS 28 5 Application Management 30 5 1 DOWNLOADING A JAR FILE WITHOUT A JAD 30 5 2 MIDLET UPGRADE 30 5 3 INSTALLATION AND DELETION STATUS REPORTS 31 6 JSR 75 PIM and Fileconnect...

Page 3: ...ET SUITES 50 8 2 UNTRUSTED DOMAIN 50 8 3 TRUSTED MIDLET SUITES 51 8 4 PERMISSION TYPES CONCERNING THE HANDSET 51 8 5 USER PERMISSION INTERACTION MODE 52 8 6 IMPLEMENTATION BASED ON RECOMMENDED SECURITY POLICY 53 8 7 TRUSTED 3RD PARTY DOMAIN 53 8 8 SECURITY POLICY FOR PROTECTION DOMAINS 54 8 9 DISPLAYING OF PERMISSIONS TO THE USER 57 8 10 TRUSTED MIDLET SUITES USING X 509 PKI 57 8 11 SIGNING A MIDL...

Page 4: ...1 11 1 JSR 139 81 12 JSR 177 Java ME Security and Trust Services API 85 12 1 FEATURE DESCRIPTION 85 12 2 ASSUMPTIONS DEPENDENCIES 86 12 3 NEW IMPLEMENTATION 87 12 3 1 JAVAX MICROEDITION APDU OPTIONAL PACKAGE 87 12 3 1 1 APDUCONNECTION INTERFACE 88 12 3 1 2 OPENING AN APDU CONNECTION 88 12 3 1 3 APDU CONNECTION ESTABLISHMENT ERRORS 90 12 3 1 4 USING AN APDU CONNECTION 90 12 3 1 5 ERRORS WHILE USING...

Page 5: ...G FUNCTIONALITY 115 15 1 2 MMS MESSAGE STRUCTURE 115 15 1 3 MMS MESSAGE ADDRESSING 115 15 1 4 MMS MESSAGE TYPES 116 15 1 5 MULTIPARTMESSAGE 116 15 1 6 MESSAGEPART 116 15 1 7 MULTIMEDIA MESSAGE SERVICE CENTER ADDRESS 116 15 1 8 APPLICATION ID 117 15 1 9 MMS PUSH 117 15 2 REQUIREMENTS FOR WMA 118 15 2 1 INITIAL SETUP 118 15 2 2 HANDLING THE INCOMING MMS MESSAGE 118 15 2 2 1 APPLICATION RUNNING RESUM...

Page 6: ...ION EXISTS 144 20 Record Management System 146 20 1 RECORD MANAGEMENT SYSTEM API 146 21 Gaming API Multiple Key Press 148 21 1 GAMING API 148 21 2 MULTIPLE KEY PRESS SUPPORT 148 22 Network APIs 151 22 1 NETWORK CONNECTIONS 151 22 2 USER PERMISSION 153 22 3 INDICATING A CONNECTION TO THE USER 153 22 4 HTTPS CONNECTION 154 22 5 DNS IP 156 22 6 PUSH REGISTRY 156 22 7 MECHANISMS FOR PUSH 156 22 8 PUSH...

Page 7: ...LEXIBLE URL FOR DOWNLOADING FUNCTIONALITY 188 29 3 SECURITY POLICY 189 30 Motorola Secondary Display API 190 30 1 PRIMARY REQUIREMENTS 190 30 2 FLIP OPEN FLIP CLOSED EVENT HANDLING 191 30 3 EXCEPTION HANDLING 191 30 4 PUSH ENABLED APPLICATIONS 192 30 5 FEATURE INTERACTION 192 30 6 LOW POWER REQUIREMENTS 192 30 7 SECURITY 192 APPENDIX A Key Mapping 193 KEY MAPPING 193 APPENDIX B Memory Management C...

Page 8: ...2 MIDP 2 0 Feature Class 49 Table 13 Trusted 3rd Party Domain 54 Table 14 MIDP 2 0 Permission Types 54 Table 15 Security Policy for Protection Domains 55 Table 16 MIDP 2 0 Specific Functions 56 Table 17 Actions performed of signer certificate verification 61 Table 18 Summary of MIDlet suite verification 62 Table 19 List of Messaging features classes 68 Table 20 Audio Media 77 Table 21 Image Media ...

Page 9: ...ttributes descriptions and its location in the JAD and or JAR manifest 172 Table 32 LCDUI API specific interfaces supported by Motorola implementation 175 Table 33 LCDUI API specific classes supported by Motorola implementation 175 Table 34 Feature class support for MIDP 176 Table 35 iTAP feature class 181 Table 36 Interface Commconncetion optional parameters 184 Table 37 Interface Commconncetion ...

Page 10: ... Figure 11 Downloading and Installing Java ME Application MIDlets 135 Figure 12 Application does not have Mandatory Attributes in ADF 137 Figure 13 Memory full error 139 Figure 14 Mot Data Space Mot Program Space attributes are not present or are incorrect 141 Figure 15 Memory Full help message during installation process 142 Figure 16 Same Version of Application already exists on the handset 143 ...

Page 11: ... 5 Using the Graphics3D object 105 Code Sample 6 Finding objects by ID 106 Code Sample 7 Using the Object3D getReferences 107 Code Sample 8 Socket Connection 152 Code Sample 9 HTTPS 154 Code Sample 10 Push Registry 157 Code Sample 11 Plataform Request 170 Code Sample 12 Java lang implementation 182 Code Sample 13 CommConnection implementation 186 11 201 DRAFT Subject to Change ...

Page 12: ...e right to make changes without notice to any products or ser vices 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 Customer s technical experts will validate all Typicals for each customer application Motorola makes no warranty in regard to the products or services con...

Page 13: ...cid ental or consequential damages or limitation on the length of an implied warranty therefore the above limitations or exclusions may not apply to you This warranty gives you specific legal rights and you may also have other rights which vary from jurisdiction to jurisdiction Motorola products or services are not designed intended or authorized for use as components in systems intended for surgi...

Page 14: ...p www ietf org rfc rfc2068 txt RFC 2396 http www ietf org rfc rfc2396 txt RFC 822 http www ietf org rfc rfc822 txt SAR http www wapforum org SSL protocol version 3 0 http wp netscape com eng ssl3 ssl toc html Sun Java ME http java sun com javame Sun Microsystems http www sun com Sun MIDP 2 0 SDK http java sun com products midp TLS protocol version 1 0 http www ietf org rfc rfc2246 txt X 509 http w...

Page 15: ...rom the Infrared Design Association IRDA and determines how different devices can talk to each other via infrared IrDA Infrared Data Association ITU International Telecommunication Union JAD Java Application Descriptor JAM Java Application Manager JAR Java Archieve Used by Java ME applications for compression and packaging Java ME Java Platform Micro Edition Java ME formerly J2ME JPG Joint Photogr...

Page 16: ...t SIM Subscriber Identity Module SMS Short Message Service SMSC Short Messaging Service Center SPP Serial Port Profile SSL Secure Sockets Layer TCP Transmission Control Protocol Trusted Device A paired device that is explicitly marked as trusted TTP Trusted Third Parties UDP User Datagram Protocol UI User Interface UICC Universal Integrated Circuit Card URI Unified Resource Identifier URL Universa...

Page 17: ...tooth pen use Chapter 8 MIDP 2 0 Security Model This chapter describes the MIDP 2 0 default security model Chapter 9 JSR 120 Wireless Messaging API This chapter describes JSR 120 implementation Chapter 10 JSR 135 Mobile Media API This chapter describes image types and supported formats Chapter 11 JSR 139 CLDC 1 1 This chapter describes briefly some characteristics of CLDC 1 1 and presents addition...

Page 18: ...a lang Implementation This chapter describes the java lang implementation Chapter 28 CommConnection Interface This chapter describes the CommConnection API Chapter 29 Motorola Get URL from Flex API This chapter describes the way to access URL stored in FLEX by a java application Chapter 30 Motorola Secondary Display API This chapter details the capability for J2ME applications to render content to...

Page 19: ...ations for the MOTORAZR maxx V6 handset 2 1 The Java Platform Micro Edition Java ME The Java ME 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 mod ular fashion allowing for scalability among a wide range of devic...

Page 20: ...d MIDP APIs is left for individual OEMs to implement and support By adding to the standard APIs manufacturers can allow de velopers to access and take advantage of the unique functionality of their handsets The MOTORAZR maxx V6 handset contains OEM APIs for extended functionality ran ging from enhanced UI to advanced data security While the MOTORAZR maxx V6 handset can run any application written ...

Page 21: ...Dlet push registration server push model Networking Persistent storage Sounds Timers User Interface File Image Support PNG JPEG GIF BMP Additional Functionality JSR 118 JSR 120 JSR 135 JSR 139 JSR 177 JSR 184 JSR 185 JSR 205 JSR 75 JSR 82 Mot Get URL from Flex API Mot Sec Display API Java ME Developer Guide Chapter 2 Java ME Introduction 21 201 DRAFT Subject to Change ...

Page 22: ...IDlets for Java ME handsets There is a wealth of material on this subject on the following websites maintained by Motorola Sun Microsystems and others Please refer to the following URLs for more information http developer motorola com http www java sun com javame http www corej2me com http www javaworld com As an introduction brief details of Java ME are explained below The MIDlet will consist of ...

Page 23: ... to assist the develop ment cycle These range from the command line tools provided with by Software De velopment Kits SDK from Sun to Integrated Development Environments IDEs which can be free or purchased These IDEs come from a range of sources such as Sun IBM and Borland to name a few In addition to the IDEs and Sun SDK for development Motorola offers access to our own SDK which contains Motorol...

Page 24: ...menu on the Motorola handset located under Java Settings as shown in Figure 2 Figure 2 JavaSystem Menu NOTE This screenshot is only an example Java ME Developer Guide Chapter 3 Developing and Packaging Java ME Applications 24 201 DRAFT Subject to Change ...

Page 25: ...o configure the platform The required file will be downloaded either jad and or jar by issuing a direct URL request to the file in question or it could be a URL request to a WAP page and a hy perlink on that page to the target file This request will be made through the browser In MIDP the need for a JAD file before download is not required so the JAR file can be downloaded directly The information...

Page 26: ...annot be achieved due to lack of space The following error codes are supported 900 Success 901 Insufficient Memory 902 User Cancelled 903 Loss Of Service 904 JAR Size Mismatch 905 Attribute Mismatch 906 Invalid Descriptor 907 Invalid JAR 908 Incompatible Configuration or Profile 909 Application Authentication Failure 910 Application Authorization Failure 911 Push Registration Failure 912 Deletion ...

Page 27: ...n installation 4 User Guide for MIDway tool In addition to the software a suitable USB A to Mini USB cable Motorola part number SKN6311A can be used It is important to note that the MIDway tool will only work with a device that has been enabled to support direct cable Java download This feature is not available by purchasing a device through a standard consumer outlet The easiest method of confirm...

Page 28: ...CGI on a content server These strings can be found in the connection logs at the content server 1 WAP Browser Release Opera 8 2 MIDP version 2 0 3 CLDC version 1 1 4 2 Error Logs Table 5 represents the error logs associated with downloading applications Error Dia log Scenario Possible Cause Install Notify Failed Inval id File JAD Down load Missing or incorrectly formatted mandatory JAD attributes ...

Page 29: ...n numbers are identical 905 Attribute Mis match Different Version Ex ists OTA JAR Download MIDlet version on handset super cedes version being downloaded Failed File Corrupt Installation Attributes are not identical to re spective JAD attributes Insufficient Storage Installation Insufficient Program Space or Data Space to install suite 901 Insufficient Memory Application Error Installation Class r...

Page 30: ...s case the user clicks on a link for a JAR file the file is downloaded and con firmation will be obtained before the installation begins The information presented is obtained from the JAR manifest instead of the JAD 5 2 MIDlet Upgrade Rules from the JSR 118 MIDP 2 0 will be followed to help determine if the data from an old MIDlet should be preserved during a MIDlet upgrade When these rules cannot...

Page 31: ...will still be enabled and the user will be al lowed to use it In some instances if the status report cannot be sent the MIDlet will be deleted by operator s request Upon successful deletion the handset will send the status code 912 to the MIDlet Delete Notify URL If this notification fails the MIDlet suite will still be deleted If this notification cannot be sent due to lack of network connectivit...

Page 32: ...ame look and feel as other features on the device will be provided User will be informed of download and installation with a single progress indicator and will be given an opportunity to cancel the process User will be prompted to launch the MIDlet after installation A method for creating shortcuts to Java applications will be provided A no forward policy on DRM issues included but not limited to ...

Page 33: ...of the PIM APIs is to provide access to Personal Information Man agement PIM data on Java ME enabled devices PIM data is defined as informa tion included in the address book calendar application and to do list applications This chapter still details requirements for implementing Personal Information Man agement PIM and Fileconnection APIs specified in JSR 75 for Java ME enabled mobile devices 6 1 ...

Page 34: ...ts Personal information read write permissions should be sup ported by the device s native system javax microedition pim ContactList read should enable reading 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 permissi...

Page 35: ...mation of each list 6 1 2 Contact List The contact database contains data items representing personal contact information like name address etc The following features should be applied to the contact list The implementation should provide support for ContactList type of PIM list as defined JSR 75 The implementation should provide a method to access an actual list of the PIM ContactList type The im...

Page 36: ...tList class section of JSR 75 The implementation should provide access to all available actual PIM lists for the EventList list type At least the following Event fields should be supported SUMMARY UID END START ALARM At least the following repeat rules fields should be supported FREQUENCY DAY_IN_WEEK WEEK_IN_MONTH DAY_IN_MONTH At least one attribute should be supported ATTR_NONE 6 1 4 To Do List T...

Page 37: ...Capability and User Data Write Capability respectively These two groups and permissions are in Table 8 Function Group Trusted Third Party Untrusted Manufacturer Operator User Data Read Capab ility Always Ask Ask Once Per App Never Ask No Access Always Ask Full Access Full Access User Data Write Capab ility Always Ask Ask Once Per App Never Ask No Access No Access Full Access Full Access Table 8 Gr...

Page 38: ...ctor READ_WRITE openDataOutputStream openOutputStream 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 o...

Page 39: ...en the file is stored on the phone Ex open file phone Card when the file is stored on a MMC SD T Flash or other card related media Ex open file SD Java ME Developer Guide Chapter 6 JSR 75 PIM and Fileconnection APIs 39 201 DRAFT Subject to Change ...

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

Page 41: ...chanism to bond two devices trying to connect for the first time A mechanism to provide authorization of connection requests The base security settings of the local device including the security modes defined in the Bluetooth specification 7 2 3 Device Property Table Table 9 lists the Motorola Bluetooth device properties for current products These device properties must be available to the MIDlet ...

Page 42: ...endent bluetooth sd trans max Maximum number of concurrent service discov ery transactions The string will be in Base10 di gits This value is product dependent bluetooth sd attr retrievable max Maximum number of service attributes to be re trieved per service record The string will be in Base10 digits This value is product dependent Table 9 Motorola Bluetooth device properties 7 2 4 Service Regist...

Page 43: ...es must be supported by the API 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 BluetoothStateException is an exception that is called when a request ca...

Page 44: ...COMM session can exist between any pair of devices at any time Negotiation of connection parameters and flow control between two Bluetooth devices must be handled automatically by the SPP connection implementation A SPP server application must initialize the services it offers and register those services in the SDDB Before an SPP client can establish a connection to an SPP service it must discover...

Page 45: ...n to the function groups Bluetooth API JSR 82 Permission Protocol Function javax bluetooth Bluetooth Data Networking javax microedition io Con nector bluetooth client Bluetooth Data Networking javax microedition io Con nector bluetooth server Bluetooth Data Networking javax microedition io Con nector obex client Bluetooth Data Networking javax microedition io Con nector obex server Bluetooth Data ...

Page 46: ...tooth connection shall remain active when the MIDlet is suspended The Bluetooth connection shall be terminated when the user Ends the MIDlet 7 2 9 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 Bluetooth connection shall be terminated when the user Ends the MIDlet Java ME Developer Gu...

Page 47: ...s Requires Java ME and Bluetooth wireless technology for the javax bluetooth support Requires Java ME and at least one of the following Bluetooth IrDA USB or HTTP for javax obex support 7 2 12 Interoperability Requirements SDK Developer Style Guide Requirements The following table lists the suggested types of screens and text used for user feed back Examples of each screen type are provided below ...

Page 48: ...Service Dis covery Dialog Scanning Devices found Progress Meter CANCEL STOP N A Name Dis covery Dialog Retriev ing Device Names x CANCEL STOP N A Device His tory List N A BACK LINK Bluetooth Link No Devices Found Transient No Devices Found N A N A N A New Devices List N A BACK LINK Scan Res ults PIN Entry Editor N A DELETE OK Enter PIN Table 11 Interoperability Requirements Java ME Developer Guide...

Page 49: ...ki package Supported All fields constructors methods and inherited methods for the CertificateException class in the javax microedition pki package 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 SHA 1 mes sage digest algorithm Supported On...

Page 50: ... if a MIDlet suite is trusted then the MIDlet suite will be rejected Untrusted MIDlet suites will execute in the untrusted domain where access to protected APIs or functions is not allowed or allowed with explicit confirmation from the user 8 2 Untrusted Domain Any MIDlet suites that are unsigned will belong to the untrusted domain Untrusted domains handsets will allow without explicit confirmatio...

Page 51: ... exist Manufacturer permissions will be marked as Allowed Full Access Downloaded and authenticated manufacturer MIDlet suites will perform consistently with MIDlet suites pre installed by the manufacturer Operator permissions will be marked as Allowed Full Access Downloaded and authenticated operator MIDlet suites will perform consistently with other MIDlet suites installed by the operator 3rd Par...

Page 52: ...mpt displayed to the user blanket grants access to the protected API or function every time it is required by the MIDlet suite until the MIDlet suite is uninstalled or the permission is changed by the user Ask Once Per App session grants access to the protected API or function every time it is required by the MIDlet suite until the MIDlet suite is terminated This mode will prompt the user on or be...

Page 53: ...ets relating to their domain User permission types as well as user prompts and notifications will also be defined 8 7 Trusted 3rd Party Domain A trusted third party protection domain root certificate is used to verify third party MIDlet suites These root certificates will be mapped to a location on the handset that cannot be modified by the user The storage of trusted third party protection do mai...

Page 54: ...n Prompts Oneshot Yes Always Ask Always Ask Session Yes Ask Once Ask Once per App Blanket Yes Always Grant Ac cess Never Ask no access No Never Grant Ac cess No Access Table 14 MIDP 2 0 Permission Types The above runtime dialog prompts will not be displayed when the protected function is set to Allowed or full access or if that permission type is an option for that pro tected function according to...

Page 55: ...ge from the default setting Function Group Trusted Third Party Untrusted Manufacturer Operator Data Net work Ask once Per App Always Ask Never Ask No Access Always Ask Ask Once Per App No Acess Full Access Full Access Messaging Always Ask No Ac cess Always Ask No Ac cess Full Access Full Access App Auto Start Ask once Per App Always Ask Never Ask No Access Always Ask Ask Once Per App No Acess Full...

Page 56: ...ttps Data Network javax microedition io Connector dat agram datagram Data Network javax microedition io Connector datagramreceiver datagram server w o host Data Network javax microedition io Connector soc ket socket Data Network javax microedition io Connector ser versocket server socket w o host Data Network javax microedition io Connector ssl ssl Data Network javax microedition io Connector co m...

Page 57: ...ries with the function groups being displayed to the user These two categories are Network Cost related and User Privacy related The Network Cost related category will include net access messaging application auto invocation and local connectivity function groups The user privacy related category will include multimedia recording read user data access and the write user data access function groups...

Page 58: ...efault security model involves the MIDlet suite the signer and public key certi ficates A set of root certificates are used to verify certificates generated by the signer 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 MOTORAZR maxx V6 handset 8 12 Signer o...

Page 59: ...ill be identical If the permissions requested in the HAD are different than those requested in the manifest the installation must 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 8 14 Creating the Signing Certificate ...

Page 60: ...certification path or 1 greater than the previous number for any subsequent intermediate certificates 8 16 Creating the RSA SHA 1 signature of the JAR The signature of the JAR is created with the signer s private key according to the EMSA PKCS1 v1_5 encoding method of PKCS 1 version 2 0 standard from RFC 2437 The signature is base64 encoded and formatted as a single MIDlet Jar RSA SHA1 attribute w...

Page 61: ...ection domains as the source of the protection domain root certificates 3 Bind the MIDlet suite to the corresponding protection domain that contains the protection domain root certificate that validated the first chain from signer to root 4 Begin installation of MIDlet suite 5 If attribute MIDlet Certificate n m with n is greater than 1 are present and full certification path could not be establis...

Page 62: ...ite is treated as untrusted The following error prompt will be shown Application installed but may have limited functionality JAD present but JAR is un signed Authentication can not be performed will install JAR MIDlet suite is treated as untrusted The following error prompt will be shown Application installed but may have limited functionality JAR signed but no root cer tificate present in the ke...

Page 63: ...d File JAR signed certificate path validated signature veri fied JAR will be installed The following prompt will be shown Installed Table 18 Summary of MIDlet suite verification 8 20 Carrier Specific Security Model The MIDP 2 0 security model will vary based on carrier requests Contact the carrier for specifics Java ME Developer Guide Chapter 8 MIDP 2 0 Security Model 63 201 DRAFT Subject to Chang...

Page 64: ...mobile terminated SMS Short Message Ser vice on the target device A simple example of the WMA is the ability of two Java ME applications using SMS to communicate game moves running on the handset 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 Recei...

Page 65: ...mode connection can only be used for sending messages 9 3 SMS Port Numbers When a port number is present in the address the TP User Data of the SMS will con tain a User Data Header with the application port addressing scheme information element When the recipient address does not contain a port number the TP User Data will not contain the application port addressing header The Java ME MIDlet canno...

Page 66: ...120 Section A 6 0 Restricted Ports 2805 2923 2948 2949 5502 5503 5508 5511 5512 9200 9201 9203 9207 49996 49999 If you intend to use SMSC numbers then please review A 3 0 in the JSR 120 specific ation The use of an SMSC would be used if the MIDlet had to determine what recip ient number to use 9 4 SMS Storing and Deleting Received Messages When SMS messages are received by the MIDlet they are remo...

Page 67: ...the recipient s device is known to support more 9 7 SMS Notification Examples of SMS interaction with a MIDlet would be the following A MIDlet will handle an incoming SMS message if the MIDlet is registered to receive messages on the port identifier and is running 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 ...

Page 68: ...and inherited methods for the MessageConnection interface in the javax wireless messaging package Supported Number of MessageConnection instances in the javax wireless messaging package 32 maximum Number of MessageConnection instances in the javax wireless messaging package 16 All methods for the MessageListener interface in the javax wireless messaging package Supported All methods and inherited ...

Page 69: ...inaryMsg public byte createBinary int size int nextByte 0 byte newBin new byte size for int i 0 i size i nextByte rand nextInt newBin i byte nextByte if size 4 i size 2 newBin i 1 0x1b newBin i 0x7f return newBin byte newBin createBinary msgLength binMsg setPayloadData newBin int num connClient numberOfSegments binMsg Creation of server connection MessageConnection messageConnection MessageConnect...

Page 70: ...ing 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 with port number message setAddress sms 18473297274 9532 Setting of address without port number message setAddress sms 18473297274 Sending of message messageConnection s...

Page 71: ...onnection messageConnection MessageConnection Connector open sms 9532 create message to send listener run set payload for the message to send set address for the 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 JSR...

Page 72: ...ssageListener listener catch IOException e result FAIL System out println FAILED exception while setting listener e toString Code Sample 1 JSR 120 WMA Java ME Developer Guide Chapter 9 JSR 120 Wireless Messaging API 72 201 DRAFT Subject to Change ...

Page 73: ...elines and con trol types listed in the sections outlined below Code Sample 2 shows the 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 catch Exception e System out println FAILED exception for createPlayer e toString Java ME Dev...

Page 74: ...ch MediaException 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 Java ME Developer Guide Chapter 10 JSR 135 ...

Page 75: ...ent volume settings found within VolumeControl Volume Settings allows the output volume to be specified using an integer value that varies between 0 and 100 Depending on the application this will need 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 highes...

Page 76: ...or multimedia processing A Player is an object used to control and render media that is specific to the content type of the data Manager provides access to an specific mechanism for constructing Players 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 10 6 Supported Multimed...

Page 77: ... 2 Image Media File Type Functionality JPEG Playback Capture Progressive JPEG Playback PNG Playback BMP Playback WBMP Playback GIF 87a 89a Playback Table 21 Image Media 10 6 3 Video Media File Type Functionality H 263 Playback MPEG4 Playback Real Video G2 Playback Real Video 8 Playback Real Video 9 Playback Table 22 Video Media Java ME Developer Guide Chapter 10 JSR 135 Mobile Media API 77 201 DRA...

Page 78: ... RTSP locator syntax 10 7 2 HTTP Locator HTTP Locators must be supported for playing back media over network connections This support should be available through Manager implementation e g Manager createPlayer http webserver tune mid 10 7 3 File Locator File locators must be supported for playback and capture of media This is specific to Motorola Java ME implementations supporting file system API ...

Page 79: ...ionality APIs need to be protected Trusted third party and untrusted applications must utilize user permissions Specific permission settings are detailed below 10 8 1 Policy Table 23 security policy will be flexed in per operator requirements at ship time of the handset Function Group Trusted Third Party Untrusted Manufacturer Operator Multimedia Record Ask once Per App Always Ask Never Ask No Acc...

Page 80: ...Record Table 24 Permissions within Multimedia Record NOTE The Audio Media formats may differ or may not be avaliable depending on the Carrier or region Java ME Developer Guide Chapter 10 JSR 135 Mobile Media API 80 201 DRAFT Subject to Change ...

Page 81: ...bjects to be compliant with Java SE requires the addition of Thread getName and a few new constructors 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 String name Alloc...

Page 82: ... The flags which tell if a specified time field for the calendar is set Protected long time The currently set time for this calendar ex pressed in milliseconds after January 1 1970 0 00 00 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 ...

Page 83: ... inclusive and the specified value exclusive drawn from this random num ber generator s se quence Java lang Math Static double E The double value that is closer than any oth er to e the base of the natural logarithms Static double PI The double value that is closer than any oth er to pi the ratio of the circumference of a circle to its diameter Static double abs double a Returns the absolute value...

Page 84: ...loat min float a float b Returns the smaller of two float values Static double sin double a Returns the trigono metric sine of an angle Static double sqrt double a Returns the correctly rounded positive square root of a double value Static double tan double a Returns the trigono metric tangent of angle Static double tode grees double an grad Converts an angle measured in radians to the equivalent ...

Page 85: ...ta integrity and data confidentiality A secure execution environment to deploy custom security features MIDlets would rely on these features to handle many value added services such as user identification and authentication banking payment loyalty applications and so on Smart cards SIM USIM UICC RUIM are commonly used to implement an SE For example on GSM networks the network operator enters the n...

Page 86: ... the Java Card RMI protocol These access methods allow a Java ME application to communicate with a smart card to enhance the security services deployed on it A MIDlet must be granted permission to use the privileged API in the SATSA APDU optional package Permissions are checked by the platform prior to the invocation of the protected methods in the API Based on the security framework implemented b...

Page 87: ...he API implementation which requests the smart card to allocate an unused logical channel More than one APDUConnection can be created to communicate simultaneously with smart card applications on one via logical channels or multiple smart cards An APDUConnection can be created to communicate with U SAT applications on channel 0 of a smart card The APDUConnection has limited capabilities when commu...

Page 88: ...DU connection is established between a MIDlet and an application on a smart card It uses one dedicated logical channel for that connection The implementation supports multiple APDU connections between the handset and a smart card Addi tionally it supports multiple APDU connections between a MIDlet and an application on a smart card if multiple connections are supported by the application on a smar...

Page 89: ... the URI to open a connection to the smart card applica tion The Java ME application MUST remove the descriptor from the logical slot name and only use the slot number in the URI to identify the specific smart card slot The U SIM card will by default always be in slot name 0 If the opening of the APDU connection fails the implementation releases the logical channel established between the handset ...

Page 90: ...plementation throws 5 exception If a MIDlet calls method 5 and the target application on the card refuses connection request the implementation throws 5 exception If a MIDlet calls method 5 but the MIDlet is not allowed to access the targeted application on the card the implementation throws 0 exception Using an APDU Connection Interface APDUConnection implements method 9 8 The implementation inte...

Page 91: ... active Interface APDUConnection implements method 5 5 9 8 9 When a MIDlet calls method 5 5 9 8 9 the implementation prompts the user to enter the existing value of the PIN the new value for the PIN and to re enter the new value for the PIN for confirmation Interface APDUConnection implements method 5 5 9 8 5 9 When a MIDlet calls method 5 5 9 8 5 9 the implementation prompts the user to enter the...

Page 92: ...ATR from the smart card When a MIDlet calls method 5 5 9 8 7 the implementation returns NULL if the smart card is not present When a MIDlet calls method 5 5 9 8 7 the implementation returns NULL if the APDU connection was already closed If response 61 XX is received from the smart card the implementation sends GET RESPONSE to the card to get the response data before any other command is sent If re...

Page 93: ...arameter contains a MANAGE CHANNEL command APDU the implementation throws exception If a MIDlet calls method 9 8 and the channel associated with the con nection object is non zero and the CLA byte has a value other than 0x0X 0x8X 0x9X or 0xAX the implementation throws excep tion If a MIDlet calls method 9 8 and the commandAPDU parameter contains a malformed APDU the implementation throws exception...

Page 94: ...ort for U SIM Application Toolkit U SAT When a MIDlet calls method 5 to open a connection to a U SAT application the implementation aquires channel 0 When a MIDlet calls method 5 to open a connection to a U SAT application the implementation addresses U SIM in slot 0 The implementation ensures that channel 0 is always available for the new APDU connection to the U SAT When a MIDlet calls method 5 ...

Page 95: ...ET RESPONSE to the card with Le set to 00 before any other command is sent The implementation ensures that between sending the ENVELOPE APDU receiving status word 62 XX or 63 XX and sending GET RESPONSE APDU with Le set to 00 there will not be any other APDU exchange on any logical channel with the smart card The implementation throws exception if U SIM responds with status word 93 00 SIM Applicat...

Page 96: ... from MIDlets that reside in such a domain i e the application is signed with a certificate that chains back to the trusted certificate provided by the SE In the Static Mechanism an ACF is published by an SE The ACF contains access con trol for individual methods and applications on the SE ACFs are stored in the SE The terminal platform is responsible for processing these files The implementation ...

Page 97: ...s sions if ACL is present get ACE and evaluate access to the method else Access Granted ACL is missing endif endif endloop Access Denied either no ACIE element is found or all found ACLs are empty endif for ACIF Access Denied ACP link exists but no applicable ACIF is found else No ACP Access Granted endif else No PKCS 15 Access Granted endif endif If any errors in ACP or PKCS 15 U SIM structure is...

Page 98: ...ed and the corresponding PrincipalID matches with the hash of the root certificate in the path used to sign the MIDlet When evaluating ACE the MIDlet is granted permission to open an APDU connection with an application in the SE if the ACE principal identifies an end entity CHOICE endEntityID is used and the corresponding PrincipalID matches with the end entity certificate used to sign the MIDlet ...

Page 99: ...rt Card Com munication function group The default security policy supports the Ask Once Per App Never Ask No Access per mission interaction modes for the Smart Card Communication function group for the TTP domain Ask Once Per App interaction mode is the default The default security policy supports only No Access permission interaction mode for the Smart Card Communication functional group for the ...

Page 100: ...Mobile 3D API The MOTORAZR maxx V6 contains full implementation of JSR 184 Mobile 3D API http jcp org en jsr detail id 184 The MOTORAZR maxx V6 has also imple mented the following Call to 0 9 0 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 an 8 bit exponent and a 24 bit mantissa normali...

Page 101: ...he main benefits of the M3G engine are the following 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 d...

Page 102: ...s can be interrogated and altered using the M3G API Alternatively all ob jects can be created from code although this is likely to be slower and limits cre ativity for designers 13 4 2 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 object that renders the world to the Display Java M...

Page 103: ...e 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 scene for special effects You can pass a whole ...

Page 104: ...bjects in the file The following 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 23 4 5 5 AAA 2 3 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 re flect this but generally most...

Page 105: ...o the update loop is started myCanvas repaint Code Sample 4 Initializing the world 13 4 4 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 Java ME Developer G...

Page 106: ...e graph You can find particular objects within the scene very simply by calling find with an ID find returns a reference to the object which has been as signed that ID in the authoring tool or manually assigned from code This is im portant because it largely makes the application logic independent of the detailed structure of the scene final int PERSON_OBJECT_ID 339929883 Node personNode Node theW...

Page 107: ...nk parts of other M3G files into the scene graph 13 4 6 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 propertie...

Page 108: ...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 bat tery life and are more friendly to background processes The animation subsystem has no memory so time is completely arbitrary This means that there are no events reported for example animation finished The ap plication...

Page 109: ... with complex animations You can use professional visual development tools such as SwerveTM Studio or SwerveTM M3G exporter from Superscape Group plc which export content from 3ds max the in dustry standard 3D animation tool in fully compliant M3G format For more informa tion please visit http www superscape com Java ME Developer Guide Chapter 13 JSR 184 Mobile 3D Graphics API 109 201 DRAFT Subjec...

Page 110: ...nts specified in MIDP 2 0 At least a screen size of 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 ...

Page 111: ...encodings If preferred name has not 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 112: ...working security and push functions MIDP 2 0 contains a number of optional func tions some of which will be implemented as outlined below The JTWI requirements for MIDP 2 0 will support the following points 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 ...

Page 113: ...per pixel per the PNG format specification For each of these color depths as well as for JFIF image formats a compliant implementation will support images up to 76800 total pixels TextField and TextBox and Phonebook Coupling when the center select key is pressed while in a TextBox or TextField and the constraint of the TextBox or TextField is TextField PHONENUMBER the names in the Phonebook will b...

Page 114: ...ture set specified in MMAPI JSR 135 will be implemented MIDI file playback will be supported VolumeControl will 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...

Page 115: ...ented by WMA 15 1 2 MMS Message Structure The MMS PDU structure shall be implemented as specified in the WAP 209 MMSEncapsulation standard The MMS PDU consists of headers and a multipart message body Some of the headers originate from standard RFC 822 headers and others are specific to multimedia messaging In addition to defined MMS headers it also contains header parameters as defined by JSR 205 ...

Page 116: ...classes Messaging framework is de scribed in the JSR 120 chapter of this developer guide 15 1 5 MultipartMessage The WMA shall implement the MultipartMessage an interface representing a multipart message This is a sub interface of Message which contains methods to add remove and manipulate message parts The interface also allows to specifying the subject of the message Please refer to JSR 205 spec...

Page 117: ...t using this API via client or server type Message Connections refer to JSR 205 specification The application specifies Application ID when opening the server mode MessageCon nection The receiving application running on a device is identified with the applica tion ID included in the message The maximum number of Application IDs shall be limited by the implementation and depends on phone RAM availa...

Page 118: ...n an IOException shall be thrown when they attempt to open the Message Connection The same rule applies if an application ID is being used by a system ap plication in the device In this case the Java application will not be able to use that application ID MMS push mechanism shall be implemented as described in the MIDP 2 0 chapter and some specific requirements are defined below in this section 15...

Page 119: ...plication The WMA shall pass the received MMS messages to concrete Java application assosi ated with the Application ID Application running resuming The Application startup and resume shall be implemented in accordance with require ments outlined in the MIDP 2 0 chapter If an MMS application startup was denied by the user then WMA shall remove all buf fered unread messages for this MMS application...

Page 120: ... handset Application ending At Application exit WMA should remove all buffered messages that were not received by the Application If the MMS application needs to keep messages more persistently it has to use other APIs File System API RMS etc to save incoming MMS messages on the handset for later use This is handled by the Application and outside the of scope of this MRS MMS Push When received a m...

Page 121: ...e_generic_prmicn Starting with P05 1 releases due to entire UI adjustment for the 2 softkey paradigm the OK shall be on the Left Soft Key The decisions to deploy options above shall be controlled by a Feature ID as it de pends on the behaviour desired by the Operator 15 3 Requirements to the Native MMS Client The mobile originated MMS Messages that are sent out by the Java client shall not be stor...

Page 122: ...s filters Only Messages that match this Address filter shall be handled by the Java client Address filtering shall be done at the Notification level If a message s from_address matches both the Native client and Java client s address filters the message shall not be downloaded and a Notify Response shall be sent to the MMSC with status set to REJECTED So a message with this from_address intended f...

Page 123: ...ll throw a SecurityException When sending or receiving messages if the permission is not granted then the Mes sageConnection send and the MessageConnection receive methods shall throw a Se curityException 15 3 4 VMVM support WMA functionality shall be supported in VMVM environment 15 3 5 External Event Interaction The implementation shall follow external event interactions Java ME Developer Guide ...

Page 124: ...hose availability may vary by region and carrier 16 1 Allow JVM to access Digital Certificates The following are the rules for accessing Digital certificates related to various do mains Manufacturer Operator and Trusted third party Rules JVM must be able to read digital certificates in the SIM JVM must be able to read digital certificates in the phone memory The implementation MUST support the fol...

Page 125: ...arty Domain The certificate must be mapped to the specified location in the SIM or in the phone memory Only operator can provision trusted third party root certificates in SIM The certificate shall be stored as READ_ONLY User application can t disable enable delete trusted third party certificates stored in SIM The implementation must search SIM first for trusted third party root certificate If a ...

Page 126: ...all be used to cause the certificates to be re cached in the SIM card Rules The operator shall issue or update the Operator Root Certificate and Trusted Third Party root certificates SIM only through the SIM Application ToolKit The SIM Specific SMS GPRS or Cell Broadcast message shall be sent from the server to the SIM card to remotely provision the certificates The handset shall support the SIM T...

Page 127: ...e is shown in Figure 9 If the certificate is a Java type of certificate the Delete item shows up in the Editable List only when the certificate belongs to the Trusted Third Party Domain and is not READ_ONLY Delete item shall not be displayed for certificates stored as READ_ONLY If the certificate is a SSL type of certificate the Delete item shall not be displayed Enable Disable Delete options must...

Page 128: ... sub menu under the main menu Currently user is not allowed to delete a root certificate The user may view more detailed information about a particular certificate by highlighting the certificate name and selecting the VIEW soft key Once selected an Editable List will be created with options Name Expiration Date and Status Enable Disable Java ME Developer Guide Chapter 16 Java ME Access to certifi...

Page 129: ...ertificates currently available in the certificate store and authorized in accordance with the device policy If device roaming or a SIM card change causes failure to access network resources that the MIDlet was previously authorized to access then the implementation MUST throw an IOException rather than security exception Java ME Developer Guide Chapter 16 Java ME Access to certificates on SIM and...

Page 130: ...itself In order to let the different operators utilize this feature there must be the ability to use flex 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 ex ceeded and downloading is rejected The maximum JAR file size value shall come dir ectly from a customer requirement or product team There...

Page 131: ...led by the flex element 17 2 Notification When the JAR file size exceeds the maximum value set a notice shall appear to in form 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 Insuf ficient Memory When the size of the JAR file exceeds the maxim...

Page 132: ...ent considers only the RS232 con nection using JAL 18 1 Establishing Connection When a successful connection to a PC is made an application can be downloaded The MS should display that a connection has been made Only one connection will be active at a time Java ME Developer Guide Chapter 18 Download Midlet through PC 132 201 DRAFT Subject to Change ...

Page 133: ...ain Menu Pressing a dedicated Browser key on the keypad if available on the handset Pressing a Browser soft key from the idle display if assigned Using Browser shortcut if assigned Selecting URL from a message Selecting GetJavaApps from the Main Menu or Java Settings 19 1 Star Active Browser Session from Main Menu Figure 10 describes Staring Active Browser Session from Main Menu Java ME Developer ...

Page 134: ...et may be selected to download to the handset Handset initially receives information from the Java Application Descriptor JAD file The JAD includes information about MIDlet name version vendor MIDlet Jar URL MIDlet Jar size and MIDlet Data size Two additional JAD attributes will be Mot Data Space Requirements and Mot Program Space Requirements These attributes will help the KVM determine whether t...

Page 135: ...lication MIDlets Download and Installation Figure 11 Downloading and Installing Java ME Application MIDlets Steps to Download and Install Java ME Application Java ME Developer Guide Chapter 19 Downloading MIDlet through Browser 135 201 DRAFT Subject to Change ...

Page 136: ... by pressing the END key The transient notice Download Cancelled displays Upon time out handset goes back to browser If JAR file size does not match with specified size it displays Failed Invalid File Upon time out the handset goes back to browser When the downloading application is cancelled handset cleans up all files including any partial JAR files and temporary files created during the downloa...

Page 137: ...should be dynamic During download or install of application voice record voice commands voice shortcuts and volume control will not be supported However during this time incoming calls and SMS messages are able to be received The handset must support sending and receiving at least 30 kilobytes of data using HTTP either from the server to the client or the client to the server per Over the Air User...

Page 138: ... enough memory exists on the phone before the MIDlet is downloaded These attributes may or may not be provided in all MIDlets Two separate prompts will be displayed depending on whether these attributes are present In cases where there is not enough memory to download the application the user MUST be given a message to delete existing applications in order to free additional memory The following m...

Page 139: ...Java ME Developer Guide Chapter 19 Downloading MIDlet through Browser 139 201 DRAFT Subject to Change ...

Page 140: ...lue of the program space should be on separate lines The download process is canceled when this error condition occurs The Memory Full error will no longer be a transient prompt but a dialog screen with a Help softkey and a Back softkey will be displayed DETAILS will give the user the above detailed Help screen describing the memory required to be able to download the MIDlet The Help dialog will i...

Page 141: ...in the JAD file the handset can not determine how much memory to free and will display the above help dialog The Help dialog will include a More right softkey label for those products in which not all the help data can be displayed on a single screen This label should disappear when the user has scrolled to the bottom of the dialog All rules stated in the previous figure must also be followed for ...

Page 142: ...ficient memory to complete the installation This error can occur whether the Mot Data Space Requirements and Mot Program Space Requirements JAD attributes are present or not The following message and Figure Figure 15 must be displayed Figure 15 Memory Full help message during installation process Java ME Developer Guide Chapter 19 Downloading MIDlet through Browser 142 201 DRAFT Subject to Change ...

Page 143: ...hich not all the help data can be displayed on a single screen This label should disappear when the user has scrolled to the bottom of the dialog BACK from this message will take the user back to the browser page from which the user selected the MIDlet to download 19 4 3 Application version already exists Compares the version number of the application with that already present on the handset If th...

Page 144: ... Exists is displayed To know more about this error select the DETAILS softkey Handset displays the new version of the application as well as the existing application 19 4 4 Newer application version exists If the application version on the handset is newer than the downloaded version of Java ME Developer Guide Chapter 19 Downloading MIDlet through Browser 144 201 DRAFT Subject to Change ...

Page 145: ...d by selecting DETAILS Figure 17 Newer Version of Application exists Rules If the latest or newer version of application is already present on the handset it cannot be downloaded Java ME Developer Guide Chapter 19 Downloading MIDlet through Browser 145 201 DRAFT Subject to Change ...

Page 146: ...ll fields and methods for the RecordComparator inter face in the javax microedition rms package Supported All methods for the RecordEnumeration interface in the javax microedition rms package Supported All methods for the RecordFilter interface in the javax microedtition rms package Supported All methods for the RecordListener interface in the javax microedition rms package Supported All fields me...

Page 147: ...orted All methods for the RecordFilter interface in the javax microedition rms package Supported All methods for the RecordListener interface in the javax microedition rms package Supported All fields methods and inherited methods for the Re cordStore interface in the javax microedition rms pack age Supported All constructors methods and inherited methods for the RecordStoreException class in the ...

Page 148: ...lasses can be used in conjunction with graphics primitives This allows for ren dering a complex background using the Gaming API while rendering something on top of it using graphics primitives Methods that modify the state of Layer LayerManager Sprite and TiledLayer objects generally do not have any immediate visible side effects Instead this state is stored within the object and is used during su...

Page 149: ...class support for MIDP 2 0 Feature Class Implementation lcdui game package Supported setBacklight as defined in javax microedition lcdui Display Supported setVibrator as defined in javax microedition lcdui Display Supported All constructors and inherited classes for the Illegal StateException in java lang Supported All constructors methods and inherited classes for the Timer class in java util Sup...

Page 150: ...nherited methods for the Sprite Class in javax microedition lcdui game Supported Sprite Frame height will not be allowed to exceed the height of the view window in javax microedition lcdui Layer Any limited by heap size only Sprite frame width will not be allowed to exceed the width view of the view window in javax microedition lcdui Layer Any limited by heap size only Sprite recommended size 16 1...

Page 151: ...thod in the Connector class the javax microedition io package READ WRITE READ_WRITE The timeouts parameter for the open method in the Con nector class of the javax microedition io package HttpConnection interface in the javax microedition io package Supported HttpsConnection interface in the javax microedition io package Supported SecureConnection interface in the javax microedition io pack age Su...

Page 152: ...work API feature class support for MIDP Code Sample 8 shows the implementation of Socket Connection Socket Connection import javax microedition io import java io import javax microedition midlet try open the connection and io streams sc SocketConnection Connector open socket www myserver com 8080 Connector READ_WRITE true is sc i openInputStream os sc i openOutputStream catch Exception ex closeAll...

Page 153: ...er of the handset will explicitly grant permission to add additional network connections 22 3 Indicating a Connection to the User When the java implementation makes any of the additional network connections it will indicate to the user that the handset is actively interacting with the network To indicate this connection the network icon will appear on the handset s status bar as shown in Figure 18...

Page 154: ...ntation 22 4 HTTPS Connection Motorola implementation supports a HTTPS connection on the MOTORAZR maxx V6 handset Additional protocols that will be supported are the following TLS protocol version 1 0 as defined in http www ietf org rfc rfc2246 txt SSL protocol version 3 0 as defined in http wp netscape com eng ssl3 ssl toc html Code Sample 9 shows the implementation of HTTPS HTTPS import javax mi...

Page 155: ..._read 0 int offset 0 int bytes_left int readLengths i do bytes_read is i read buffer offset bytes_left offset bytes_read bytes_left bytes_read byteCounts i bytes_read while bytes_read 0 System out println byte read byteCounts i catch Exception ex System out println Downloading Failed ex getMessage numPassed 0 finally try is i close is i null catch Exception ex Java ME Developer Guide Chapter 22 Ne...

Page 156: ...ter for notification events that are meant for the application The push registry maintains a list of inbound con nections 22 7 Mechanisms for Push Motorola implementation for push requires the support of certain mechanisms The mechanisms that will be supported for push are the following SMS push an SMS with a port number associated with an application used to deliver the push notification The form...

Page 157: ...es of registration mechanisms will be supported The registration mechan isms to be supported are the following Registration during installation through the JAD file entry using a fixed port number Dynamically register using an assigned port number If the port number is not available on the handset an installation failure notification will be displayed to the user while the error code 911 push is s...

Page 158: ...ER regFilter new TextField Filter 32 TextField ANY display Display getDisplay this regForm new Form Register unregForm new Form Unregister mainForm new Form PushTest_1 messageForm new Form PushTest_1 exitCommand new Command Exit Command EXIT 0 backCommand new Command Back Command BACK 0 unregCommand new Command Unreg Command ITEM 1 regCommand new Command Reg Command ITEM 1 mainForm append Press Re...

Page 159: ...tartApp display setCurrent mainForm public void destroyApp boolean unconditional notifyDestroyed public void showMessage String s if messageForm size 0 messageForm delete 0 messageForm append s display setCurrent messageForm public void commandAction Command c Displayable s if c unregCommand s mainForm mc c ms s new runThread start if c regCommand s mainForm display setCurrent regForm if c regComm...

Page 160: ...Thread public void run if mc unregCommand ms mainForm try registeredConns PushRegistry listConnections false if unregForm size 0 unregForm delete 0 registeredConnsCG new ChoiceGroup Connections Choice Group MULTIPLE registeredConns null if registeredConnsCG size 0 unreg Form append registeredConnsCG else unregForm append No registered connections found display setCurrent unregForm catch Exception ...

Page 161: ...edConnsCG isSelected i PushRegistry unregisterConnection registeredConnsCG getString i registeredConnsCG delete i if registeredConnsCG size 0 unregForm delete 0 unregForm append No registered connections found catch Exception e showMessage Unexpected e toString e getMessage WakeUp java import javax microedition midlet import javax microedition lcdui import javax microedition io PushRegistry import...

Page 162: ...rCommand new Command Register Command SCREEN 0 tf new TextField Delay in seconds 10 10 TextField NUMERIC mainForm addCommand exitCommand mainForm addCommand registerCommand mainForm append tf mainForm setCommandListener this display setCurrent mainForm public void pauseApp public void destroyApp boolean unconditional notifyDestroyed public void commandAction Command c Displayable s if c exitComman...

Page 163: ...ainForm append FAILED nregisterAlarm thrown cnfe catch ConnectionNotFoundException cnfe mainForm append FAILED nregisterAlarm thrown cnfe SMS_send java import javax microedition lcdui import javax microedition midlet import javax microedition io PushRegistry import javax wireless messaging import javax microedition io public class SMS_send extends MIDlet implements CommandListener public Display d...

Page 164: ...0 32 TextField PHONENUMBER message_text_tf new TextField Message text test message 160 TextField ANY binary_cg new ChoiceGroup null Choice MULTIPLE binary_str null display Display getDisplay this messageForm new Form SMS_send mainForm new Form SMS_send exitCommand new Command Exit Command EXIT 0 backCommand new Command Back Command BACK 0 sendCommand new Command Send Command ITEM 1 mainForm append...

Page 165: ...and s messageForm display setCurrent mainForm if c exitCommand s mainForm destroyApp false if c sendCommand s mainForm address sms address_tf getString if port_tf size 0 address port_tf getString text message_text_tf getString new send_thread start public class send_thread extends Thread public void run try conn MessageConnection Connector open address if binary_cg isSelected 0 txt_message TextMes...

Page 166: ...tended for a MIDlet on the MOTORAZR maxx V6 handset will handle the following interactions MIDlet running while receiving a push message if the application receiving the push message is currently running the application will consume the push message without user notification No MIDlet suites running if no MIDlets are running the user will be notified of the incoming push message and will be given ...

Page 167: ...sible for the handset to receive multiple push mes sages at one time while the user is running a MIDlet The user will be given the op tion to allow the MIDlets to end and new MIDlets to begin The user will be given the ability to read the messages in a stacked manner stack of 5 supported and if not read the messages should be discarded No applications registered for push if there are no applicatio...

Page 168: ...mentation of SocketConnection using TCP sockets will throw java lang SecurityException when an untrusted MIDlet suite attempts to connect on ports 80 and 8080 http and 443 https The implementation of SecureConnection using TCP sockets will throw java lang SecurityException when an untrusted MIDlet suites attempts to connect on port 443 https The implementation of the method DatagramConnection send...

Page 169: ...ll not support the application java archive mime type in the URL for the platformRequest method Supported Launching native apps with URLs Supported URL compatible launch of the WAP Browser Supported URL compatible launch of the phone dialer Supported Will not require the MIDlet to exit in order to launch an application from the platformRequest method Supported Will pause the MIDlet when executing ...

Page 170: ...uests a URL the browser will come to the foreground and connect to that URL The user will then have access to the browser and control over any downloads or network connections The initiating MIDlet suite will continue run ning in the background if it cannot upon exiting the requesting MIDlet suite the handset will bring the browser to the foreground with the specified URL If the URL specified refe...

Page 171: ...nly handle the last request made If the MIDlet suite continues to run in the background when the URL request is being made all other requests will be handled in a timely manner The user will be asked to acknowledge each request before any actions are taken by the handset and upon completion of the platform request the Java Service Menu will be displayed to the user Java ME Developer Guide Chapter ...

Page 172: ...the handset before loading the JAR file Allows configuration specific attributes parameters to be supplied to the MIDlet s without modifying the JAR file Motorola has implemented the following support for the MIDP 2 0 Java Application Descriptor attributes as outlined in the JSR 118 Table 31 lists all MIDlet attributes descriptions and its location in the JAD and or JAR manifest that are supported...

Page 173: ... included in the JAD Yes or no if in clude d in the JAR Mani fest MIDlet Jar URL The URL from which the JAR file can be loaded Yes MIDlet Jar Size The number of bytes in the JAR file Yes MIDlet Data Size The minimum number of bytes of persistent data required by the MIDlet Yes Yes MicroEdition Profile The Java ME profiles required If any of the profiles are not imple mented the installation will f...

Page 174: ...request is sent to report installation status of the MIDlet suite Yes Yes MIDlet Delete Notify The URL to which a POST request is sent to report deletion of the MIDlet suite Yes Yes MIDlet Delete Confirm A text message to be provided to the user when prompted to con firm deletion of the MIDlet suite Yes Yes Table 31 MIDlet attributes descriptions and its location in the JAD and or JAR manifest Jav...

Page 175: ...ems within a Form231 screen Table 32 LCDUI API specific interfaces supported by Motorola implementation Table 33 lists the specific classes supported by Motorola implementation Classes Description Alert An alert is a screen that shows data to the user and waits for a certain period of time before proceeding to the next Displayable AlertType The AlertType provides an indication of the nature of ale...

Page 176: ...hat can be added to a Form List A Screen containing a list of choices Screen The common superclass of all high level user interface classes Spacer A blank non interactive item that has a settable minimum size StringItem An item that can contain a string TextBox The TextBox class is a Screen that allows the user to enter and edit data TextField A TextField is an editable text component that will be...

Page 177: ...tion of the key Supported All fields and methods for the Choice interface in the javax microedition lcdui package Supported Truncate an image in a Choice object if it exceeds the ca pacity of the device display Supported Truncation of very long elements will not occur in a Choice object Text in forms is wrapped and scrolled Will display a portion of long elements to display and provide a means for...

Page 178: ...ields methods and inherited methods for the Graphics class in the javax microedition lcdui package Supported DOTTED stroke style Supported SOLID stroke style Supported All methods and inherited methods for the Image class in the javax microedition lcdui package Supported All fields constructors methods inherited fields and in herited methods for the ImageItem class in the javax microedition lcdui ...

Page 179: ...d set will be provided Supported All constructors methods and inherited methods for the Ticker class in the javax microedition lcdui package Supported OEM Lights API providing control to the lights present on the handset Supported Fun Lights API All fields constructors methods inherited fields and in herited methods for the TextField class in the havax microedition lcdui package Supported Table 34...

Page 180: ...n the letters of a word using only one key press per letter as apposed to the TAP method that can require as many as four or more key presses The use of the iTAP method can greatly decrease text entry time Its use extends beyond SMS text messaging but into other functions such as phonebook entries The following Java ME text input components will support iTAP javax microedition lcdui TextBox The Te...

Page 181: ... the text input method during the input process when the constraint is set to ANY if predictive text is available Multi tap input will be offered when the constraint on the text input is set to EMAIL ADDR PASSWORD or URL Table 35 iTAP feature class Java ME Developer Guide Chapter 26 iTAP 181 201 DRAFT Subject to Change ...

Page 182: ...mplementation Battery values are the following low battery 1 2 and 3 based on the battery level IMEI The IMEI number of the device will be returned during implementation MSISDN The MSISDN of the device will be returned during implementation The IMEI and MSISDN properties will not be available for unsigned MIDlets The Code Sample 12 shows the java lang implementation System getProperty batterylevel...

Page 183: ...stem so it can act as a logical serial port 28 2 Accessing The Comm port is accessed using a Generic Connection Framework string with an ex plicit port identifier and embedded configuration parameters each separated with a semi colon Only one application may be connected to a particular serial port at a given time A is thrown if an attempt is made to open the serial port with if the connection is ...

Page 184: ...n a semi colon Legal parameters are defined by the definition of the parameters below Illegal or un recognized parameters cause an If the value of a para meter is supported by the device it will be honored If the value of a parameter is not supported a is thrown If a baudrate parameter is re quested it is treated the same way that a 6 5 method handles baudrates For example if the baudrate requeste...

Page 185: ...hat option overrides the previous option baud_rate_string baudrate vbaud_rate baud_rate string of digits bitsperchar bitsperchar bit_value bit_value 7 8 stopbits stopbits stop_value stop_value 1 2 parity parity parity_value parity_value even odd none blocking blocking on_off autocts autocts on_off autorts autorts on_off on_off on off Table 37 Interface Commconncetion BNF syntax 28 5 Comm Security ...

Page 186: ...ck program CommConnection cc CommConnection Connector open comm com0 baudrate 19200 int baudrate cc getBaudRate InputStream is cc openInputStream OutputStream os cc openOutputStream int ch 0 while ch Z os write ch ch is read ch is close os close cc close Sample of a CommConnection discovering available comm Ports String port1 String ports System getProperty microedition commports int comma ports i...

Page 187: ... be used COM COM is for RS 232 ports and is a number assigned to the port IR IR is for IrDA IRCOMM ports and is a number assigned to the port The naming scheme allows API users to determine the type of port to use For ex ample if an application beams a piece of data the application will look for IR ports for opening the connection 28 7 Method Summary Table 38 describe the CommConnection method sum...

Page 188: ...ut the location which a new level of game can be downloaded This new functionality allows carriers to specify the URL for content download 29 2 Flexible URL for downloading functionality The URL is flexed using RadioComm or using OTA provisioning The URL will follow the rules mentioned below All URLs used shall follow the guidelines outlined in RFC1738 Uniform Resource Locators URL Refer to http w...

Page 189: ... key for accessing the URL is com mot carrier URL The method System getProperty will return NULL if no URL is flexed 29 3 Security Policy Only trusted applications will be granted permission to access this property Java ME Developer Guide Chapter 29 Motorola Get URL from Flex API 189 201 DRAFT Subject to Change ...

Page 190: ...apability to ex tend application UI to the secondary display 30 1 Primary Requirements The first implementation of the Secondary Display API is targeted for the Triplets re fresh Supporting Displayable items such as Forms TextBox List is not required al though design considerations will be made to support these UI features in future re leases The Secondary Display API will provide functionality to...

Page 191: ... be available for the MIDlet In normal mode the status area won t be available for display The secondary display API must support all Graphics class functionality Providing some game canvas functionality to the secondary display is not required first implementation but will be taken up for future releases Multimedia resources must be available for MIDlets running on secondary display playing audio...

Page 192: ...can run on secondary display This will be subject to user confirmation This feature need not be implemented for the first version of API 30 5 Feature interaction Any incoming call message or any scheduled native application should have priority over MIDlet running on secondary display If any native application requests focus the running MIDlet shall be suspended 30 6 Low power requirements It is d...

Page 193: ... 5 SELECT followed by NUM5 6 NUM6 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 Java ME Developer Guide Appendix A Key Mapping 193 201 DRAFT Subject to Change ...

Page 194: ...aint set CENTER SELECT SELECT END Handled according to Motorola specifica tion Pause End Resume Background menu invoked Table 39 Key Mapping Java ME Developer Guide Appendix A Key Mapping 194 201 DRAFT Subject to Change ...

Page 195: ...ent Calculation The available memory on the MOTORAZR maxx V6 is the following 64 MB shared memory for MIDlet storage 4Mb Heap size Java ME Developer Guide Appendix B Memory Management Calculation 195 201 DRAFT Subject to Change ...

Page 196: ...Asked Questions about enabling technologies on Motorola products Access to dynamic content based on questions from the Motorola Java ME developer community is available at the URL stated below http developer motorola com Java ME Developer Guide Appendix C FAQ 196 201 DRAFT Subject to Change ...

Page 197: ...x D HTTP Range Graphic Description Figure 20 shows a graphic description of HTTP Range Figure 20 Graphic Description of HTTP Range Java ME Developer Guide Appendix D HTTP Range 197 201 DRAFT Subject to Change ...

Page 198: ...ORAZR maxx V6 The spec sheet contains information regarding the following areas Technical Specifications Key Features Java ME Information Motorola Developer Information Tools Other Related Information Java ME Developer Guide Appendix F Spec Sheet 198 201 DRAFT Subject to Change ...

Page 199: ...A PC Synch Motosync MobilePhone Tools HSDPA 3 6 Mbps category 6 EDGE Class 10 GPRS Class 10 Internal Antenna Futuristic Touch Sensitive Music Keys with Elegant Lighting RAZR Phone Lineage 3G Device Mix of Metal and Glass Two way Video Calling at up to 15 frames per second Video Capture Related Information Motorola Developer Information Developer Resources at http developer motorola com Tools Motor...

Page 200: ...20 64 64 65 66 66 66 68 113 116 MIDP 20 20 20 20 22 23 25 30 30 31 49 49 49 53 60 60 63 79 86 96 100 101 103 110 112 118 118 119 120 122 124 146 148 149 151 169 169 170 172 176 180 187 192 SMS 64 64 65 66 66 66 66 67 67 67 67 71 113 126 156 163 180 180 WMA 64 64 113 115 115 116 116 117 118 118 118 119 119 119 119 120 120 122 122 123 Java ME Developer Guide Appendix H Quick Reference 200 201 DRAFT ...

Page 201: ... ...

Reviews: