Motorola V3x Technical Manual

2 cameras; 320x240 display
Hide thumbs Also See for V3x:
Table of Contents

Advertisement

Technical Manual
V3x Handset
J2ME™ Developer Guide
Version 1.01

Advertisement

Table of Contents
loading

Summary of Contents for Motorola V3x

  • Page 1 Technical Manual V3x Handset J2ME™ Developer Guide Version 1.01...
  • Page 2: Table Of Contents

    Table of Contents TABLE OF CONTENTS ..........................2 TABLE OF FIGURES..........................6 INDEX OF TABLES ............................ 7 TABLE OF CODE SAMPLES........................9 1 INTRODUCTION ............................ 10 ..............................10 URPOSE ..............................10 UDIENCE .............................. 10 ISCLAIMER .............................. 11 EFERENCES ..........................12 EVISION ISTORY ...................
  • Page 3 API 2.0 (JSR 205)..................31 IRELESS ESSAGING Messaging Functionality ....................... 31 MMS Message Structure......................31 MMS Message Addressing ......................32 MMS Message Types ........................32 Multimedia Message Service Center Address ............33 Application ID..........................33 7 JSR 120 – WIRELESS MESSAGING API..................34 API (WMA)......................
  • Page 4 ..............................74 VERVIEW API ........................74 JSR-82 B LUETOOTH System Requirements......................... 74 Bluetooth Control Center..................... 75 Device Property Table......................75 Service Registration ......................76 Device Management ........................76 Communication ..........................77 Security Policy .......................... 78 External Events .......................... 79 Alarm & Datebook Behaviour ....................79 Pressing of End Key.........................
  • Page 5 APPENDIX B: MEMORY MANAGEMENT CALCULATION ..............104 ..........................104 VAILABLE EMORY APPENDIX C: FAQ ..........................105 FAQ............................105 NLINE APPENDIX F: SPEC SHEET V3X...................... 106 ........................... 106 HEET APPENDIX H: QUICK REFERENCE....................108...
  • Page 6: Table Of Figures

    Table of 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: Index Of Tables

    TABLE 15 SECURITY POLICE ........54 TABLE 16 INDIVIDUAL PERMISSIONS WITHIN MULTIMEDIA RECORD FUNCTION GROUP ............54 TABLE 17 PERMISSIONS AND GROUPS ........57 TABLE 18 GROUPS AND PERMISSIONS FOR ......59 TABLE 19 MOTOROLA BLUETOOTH DEVICE PROPERTIES ....76 TABLE 20 SECURITY POLICY ........78...
  • Page 8 TABLE 21 MIDP 2.0 FEATURE/CLASS ........82 TABLE 22 TRUSTED 3RD PARTY DOMAIN ......85 TABLE 23 MIDP 2.0 PERMISSION TYPES ......85 TABLE 24 SECURITY POLICY FOR PROTECTION DOMAINS ....86 TABLE 25 MIDP 2.0 SPECIFIC FUNCTIONS ......87 TABLE 26 ACTIONS PERFORMED OF SIGNER CERTIFICATE VERIFICATION ..91 TABLE 27 SUMMARY OF MIDLET SUITE VERIFICATION ....92 TABLE 28 ADDITIONAL CLASSES, FIELDS, AND METHODS SUPPORTED FOR CLDC 1.1 COMPLIANCE ...........101...
  • Page 9: Table Of Code Samples

    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: Introduction

    J2ME applications for the V3x handset. Disclaimer Motorola reserves the right to make changes without notice to any products or services described herein. “Typical” parameters, which may be provided in Motorola Data sheets and/or specifications can and do vary in different applications and actual performance may vary.
  • Page 11: References

    In no event shall Motorola be liable, whether in contract or tort (including negligence), for any damages resulting form use of a product or service described herein, or for any indirect, incidental, special or consequential damages of any kind, or loss of revenue or...
  • Page 12: Revision History

    Revision History Version Date Reason 01.00 Dez 26, 2005 Initial Release 01.01 Jan 24, 2006 Corrections in Spec Sheet and inclusion of JSR 139 chapter Table 2 Revision History Definitions, Abbreviations, Acronyms Acronym Description 3GPP 3rd Generation Partnership Project Advanced Audio Coding Application Management Software Application Program Interface.
  • Page 13: Document Overview

    Chapter 2 – J2ME Introduction: this chapter describes the J2ME platform and the available resources on the V3x. Chapter 3 – Developing and Packaging J2ME Applications: this chapter describes important features to look for when selecting tools and emulation environments. It also describes how to package a J2ME application, how to package a MIDlet, and generate JAR and JAD files properly.
  • Page 14 Appendix C – FAQ: this appendix provides a link to the dynamic online FAQ. Appendix F – Spec Sheet: this appendix provides the spec sheet for the Motorola V3x handset. Appendix H – Quick Reference: this appendix provides quick references to this...
  • Page 15: J2Me Introduction

    J2ME Introduction The V3x includes the Java™ 2 Platform, Micro Edition, also known as the J2ME platform. The J2ME platform enables developers to easily create a variety of Java applications ranging from business applications to games. Prior to its inclusion, services or applications residing on small consumer devices like cell phones could not be upgraded or added to without significant effort.
  • Page 16: The Motorola J2Me Platform

    The V3x contains OEM APIs for extended functionality ranging from enhanced UI to advanced data security. While the V3x can run any application written in standard MIDP, it can also run applications that take advantage of the unique functionality provided by these APIs.
  • Page 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: Developing And Packaging J2Me Applications

    MIDlets for J2ME handsets. There is a wealth of material on this subject on websites maintained by Motorola, Sun Microsystems and others. Please refer to the following URLs for more information: http://www.motocoder.com...
  • Page 19 For a look at such environments, review the “Motorola T720 Handset Developer Guide” which is available from the MOTOCODER website. In addition to the IDEs and Sun SDK for development, Motorola offers access to our own SDK which contains Motorola device emulators. From here, a MIDlet can be built and then deployed onto an emulated target handset.
  • Page 20: Downloading Applications

    URL request to a WAP page and a hyperlink on that page to the target file. This request will be made through the Motorola Internet Browser (MIB). In MIDP 2.0, the need for a JAD file before download is not required, so the JAR file can be downloaded directly.
  • Page 21 Corrupt” and returns to Browser after time-out. If JAD does not contain mandatory attributes, “Failed Invalid File” notice appears Method 2 - Direct Cable & Motorola MIDway Tool The direct cable approach can be performed using a tool available from MOTOCODER called MIDway.
  • Page 22: Figure 2 Midway "Java Tool" Menu

    If it is not, then contact MOTOCODER support for advice on how to receive an enabled handset. Motorola provides a User Guide with the MIDway tool (as listed above) as well as a document outlining the tool for version 2.8 on the MOTOCODER website entitled “Installing J2ME MIDlet using MIDway Tool”.
  • Page 23: Error Logs

    Error Logs The Table 5 represents the error logs associated with downloading applications. Error Dialog Scenario Possible Cause Install-Notify Failed: Invalid File Missing or incorrectly formatted mandatory 906 Invalid Download JAD attributes descriptor Mandatory: MIDlet-Name (up to 32 symbols) MIDlet-Version MIDlet-Vendor (up to 32 symbols) MIDlet-JAR-URL (up to 256 symbols) MIDlet-JAR_Size...
  • Page 24: Table 5 Error Logs

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

    Downloading a JAR file without a JAD In Motorola’s MIDP 2.0 implementation, a JAR file can be downloaded without a JAD. In this case, the user clicks on a link for a JAR file, the file is downloaded, and a confirmation will be obtained before the installation begins.
  • Page 26: Installation And Deletion Status Reports

    Installation and Deletion Status Reports The status (success or failure) of an installation, upgrade, or deletion of a MIDlet suite will be sent to the server according to the JSR 118 specification. If the status report cannot be sent, the MIDlet suite will still be enabled and the user will be allowed to use it. In some instances, if the status report cannot be sent, the MIDlet will be deleted by operator’s request.
  • Page 27: Jsr 205 - Wma 2.0

    API that are important to this implementation rather than restating entire JSR-205; refer the JSR 205 for more details. This section also provides Motorola specific requirements for WMA in addition to JSR-205.
  • Page 28: Cldc Related Content For Jtwi

    JTWI is designed to be implemented on top of CLDC 1.0 or CLDC 1.1. The configuration provides the VM and the basic APIs of the application environment. If floating point capabilities are exposed to Java Applications, CLDC 1.1 (not suported on V3x) will be implemented.
  • Page 29: Midp 2.0 Specific Information For Jtwi

    • Digit Digit Digit: one of: • 0 1 2 3 4 5 6 7 8 9 NOTE: Hours will be between 0 and 23, and minutes will be between 00 and 50. For example, GMT +10 and GMT +0010 equates to ten hours and ten minutes ahead of GMT. When creating a TimeZone, the specified custom time zone ID is normalized in the following syntax: •...
  • Page 30: Wireless Messaging

    Timer Resolution will permit an application to specify the values for the firstTime, delay, and period parameters of java.util.timer.schedule () methods with a distinguishable resolution of no more than 40 ms. Various factors (such as garbage collection) affect the ability to achieve this requirement. At least 80% of test attempts will meet the schedule resolution requirement to achieve acceptable conformance.
  • Page 31: Mobile Media Api 1.1 (Jsr 135)

    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.
  • Page 32: Mms Message Addressing

    others are specific to multimedia messaging. In addition to defined MMS headers, it also contains header parameters as defined by JSR 205. The message body may contain parts of any content type and MIME multipart is used to represent and encode a wide variety of media types for transmission via multimedia messaging.
  • Page 33: Multimedia Message Service Center Address

    Multimedia Message Service Center Address The MMSC address used for sending the messages should be made available using System.getProperty with property name “wireless.messaging.mms.mmsc”. Applications might need to obtain the Multimedia Message Service Center (MMSC) address to decide which recipient to use. For example, the application might need to do this because it is using service numbers for application servers which might not be consistent in all networks and MMSCs.
  • Page 34: Jsr 120 - Wireless Messaging Api

    JSR 120 – Wireless Messaging Wireless Messaging API (WMA) Motorola has implemented certain features that are defined in the Wireless Messaging API (WMA) 1.0 and 1.3 versions. The complete specification document is defined in JSR 120. The JSR 120 specification states that developers can be provided access to send (MO –...
  • Page 35: Sms Port Numbers

    can be opened in either server or client mode. A server MessageConnection connection is opened by providing a URL that specifies an identifier (port number) for an application on the local device for incoming messages. (MessageConnection)Connector.open("sms://:6000"); Messages received with this identifier will then be delivered to the application by this connection.
  • Page 36: Sms Storing And Deleting Received Messages

    Also, for sending, support for a minimum of three messages is supported. Motorola advises that developers will not send messages that will take up more than three SMS protocol messages unless the recipient’s device is known to support more.
  • Page 37 When a MIDlet is paused and is registered to receive messages on the port number of the incoming message, then the user will be queried to launch the MIDlet. If the MIDlet is not running and the Java Virtual Machine is not initialized, then a Push Registry will be used to initialize the Virtual Machine and launch the J2ME MIDlet.
  • Page 38: Table 7 List Of Messaging Features/Classes Supported

    16 bit reference number in concatenated messages Supported Number of concatenated messages. 30 messages in inbox, each can be concatenated from 3 parts. No limitation on outbox (immediately transmitted) Allow MIDlets to obtain the SMSC address with the Supported wireless.messaging.sms.smsc system property Table 7 List of Messaging features/classes supported The code sample 1 shows implementation of the JSR 120 Wireless Messaging API: Creation of client connection and for calling of method ‘numberOfSegments’...
  • Page 39 MessageConnection messageConnection = (MessageConnection)Connector.open("sms://:9532"); Creation of client connection with port number: MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274:9532"); Creation of client connection without port number: MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274"); Closing of connection: MessageConnection messageConnection.close(); Creation of SMS message: Message textMessage = messageConnection.newMessage(MessageConnection.TEXT_MESSAGE); Setting of payload text for text message: ((TextMessage)message).setPayloadText("Text Message");...
  • Page 40 Getting of address: String address = ((TextMessage)message).getAddress(); Getting of SMS service center address via calling of System.getProperty(): String addrSMSC = System.getProperty("wireless.messaging.sms.smsc"); Getting of timestamp for the message: Message message; System.out.println("Timestamp: " + message.getTimestamp().getTime()); Creation of client connection, creation of binary message, setting of payload for binary message and calling of method ‘numberOfSegments(Message)’...
  • Page 41 int num = connClient.numberOfSegments(binMsg); Setting of MessageListener and receiving of notifications about incoming messages: public class JSR120Sample1 extends MIDlet implements CommandListener { … JSR120Sample1Listener listener = new JSR120Sample1Listener(); … // open connection messageConnection = (MessageConnection)Connector.open("sms://:9532"); … // create message to send …...
  • Page 42: App Inbox Clean-Up

    Code Sample 1 JSR 120 Wireless Messaging API App Inbox Clean-up Actually, messages for MIDlets are stored in a separate App Inbox. This App Inbox is cleaned up automatically. The App Inbox capacity is 26 messages or 26 segments and when a new message is received for a certain port number, and the App Inbox capacity has reached its limit of 26 messages, then the messages in the App Inbox will be deleted in the following order: •...
  • Page 43: Jsr 135 - Mobile Media Api

    JSR 135 – Mobile Media API JSR 135 Mobile Media API The JSR 135 Mobile Media APIs feature sets are defined for five different types of media. The media defined is as follows: • Tone Sequence • Sampled Audio • MIDI The new implementation of JSR 135 supports playback of more audio formats and recording of time-based media –...
  • Page 44: Code Sample 2 Jsr 135 Mobile Media Api

    player.realize(); catch (MediaException e) System.out.println("FAILED: exception for realize: " + e.toString()); // Acquire exclusive resources, fill buffers with media data player.prefetch(); catch (MediaException e) System.out.println("FAILED: exception for prefetch: " + e.toString()); // Start the media playback player.start(); catch (MediaException e) System.out.println("FAILED: exception for start: "...
  • Page 45: Tonecontrol

    ToneControl ToneControl is the interface to enable playback of a user-defined monotonic tone sequence. The JSR 135 Mobile Media API will implement public interface ToneControl. A tone sequence is specified as a list of non-tone duration pairs and user-defined sequence blocks and is packaged as an array of bytes. The setSequence() method is used to input the sequence to the ToneControl.
  • Page 46: Manager Class

    -setStopTime (long stopTime): Sets the media time at which you want the Player to stop. Manager Class Manager Class is the access point for obtaining system dependant resources such as players for multimedia processing. A Player is an object used to control and render media that is specific to the content type of the data.
  • Page 47: Table 9 Audio Mime Types

    audio/wav x-wav audio/mp3 x-mp3 mpeg3 x-mpeg3 mpeg x- mpeg AMR/MP4 audio/amr x-amr mp4 x-mp4 3gpp audio/m4a Table 9 Audio MIME types Refer to the table 10 for multimedia feature/class support for JSR 135: Feature/Class Implementation Media package found Supported Media control package Supported Media Protocol package Streaming not supported...
  • Page 48: Mobile Media Feature Sets

    2 sounds can be prefetched at once. These exceptions are listed below: 1. Motorola provides the ability to play MIDI and WAV files simultaneously, but the MIDI track will be started first. The WAV file should have the following format: PCM 8,000 Khz;...
  • Page 49 getMinPitch() Gets the minimum playback pitch raise supported by the player. SHOULD implement a minimum playback pitch raise of 12,000 millisemitones. getPitch() Gets the current playback pitch raise. setPitch() Sets the relative pitch raise. FramePositioningC mapFrameToTime() Converts the given ontrol frame number to the (Implementation corresponding media...
  • Page 50 RecordControl All fields & methods RecordControl controls the recording of media from a Player. Supports all methods. Required for audio capture functionality. Video capture support is optional. RecordControl is a protected API as specified in the Security section. VideoControl All fields & methods. VideoControl controls (Implementation the display of video.
  • Page 51: Table 11 New Packages, Classes, Fields And Methods Implemented

    Manager.createPlayer(“http://webserver/tune.mid”) o File locators are supported for playback and capture of media. This is specific to Motorola J2ME implementations supporting file system API and not as per JSR-135. The support should be available through Manager and RecordControl implementations.
  • Page 52: Supported Multimedia File Types

    Supported Multimedia File Types The tables 12, 13 and 14 lists multimedia file types (with corresponding CODECs) that are supported in products that are JSR-135 compliant. The common guideline being all codecs and file types supported by native side should be accessible through JSR-135 implementation.
  • Page 53: Table 14 Video Media

    Video Media File Type CODEC Functionality H.263 (profile 0) or Playback and Capture MPEG 4 with or without AMR/AAC audio. H.263 (profile 0) or Playback and Capture MPEG 4 with or without AMR/AAC audio. RTF Streaming RTP/RTSP/RTCP Playback Streaming Engine Proprietary (Microsoft) Playback Proprietary (Microsoft)
  • Page 54: Table 15 Security Police

    Function Group Trusted Third Untrusted Manufacturer Operator Party Multimedia Record Ask once Per Always Ask, Ask Full Access Full Access App, Always Ask, once Per App, Never Ask, No Never Ask, No Access Access Table 15 Security Police Permissions The table 16 lists individual permissions within Multimedia Record function group. Permission Protocol Function Group...
  • Page 55: Jsr 75 - Pim And File Connection Apis

    JSR 75 – PIM and File Connection APIs This chapter defines the JSR-75 APIs implementation requirements that shall replace the earlier implemented File Connection API requirement, except for the Recent Calls API that shall still be supported by RecentCallRecord, RecentCallDialed and RecentCallReceived classes.
  • Page 56 • javax.microedition.pim.FieldEmptyException; • javax.microedition.pim.FieldFullException; • javax.microedition.pim.UnsupportedFieldException; • javax.microedition.pim.PIMItem; • javax.microedition.pim.Contact; • javax.microedition.pim.Event; • javax.microedition.pim.PIMList; • javax.microedition.pim.ContactList; • javax.microedition.pim.EventList. The implementation should include support of the following packages, classes, and interfaces with appropriate methods and fields of FileConnection API described in JSR- 75, related to javax.microedition.io.file: •...
  • Page 57: Contact List

    Access Table 17 Permissions and Groups The PIM permissions should prohibit granting to a MIDlet suite which does not request them explicitly in the attributes MIDlet -Permissions or MIDlet -Permissions – Opt. The PIM package allows handling three types of lists: events, contacts and to do lists. Each one is stored in a specific database, respectively: event database, contact database and to do database.
  • Page 58: To Do List

    File Connection API The primary goal of the FileConnection API is to provide access to file systems on devices and/or mounted removable memory cards supported by Motorola devices. Requirements File Connection API requirements will be replaced with the requirements below.
  • Page 59: Table 18 Groups And Permissions For

    Trusted Third Function Group Untrusted Manufacturer Operator Party Always Ask, Ask User Data Read Once Per App, No Access Full Access Full Access Capability Never Ask, No Access Always Ask, Ask User Data Write Once Per App, No Access Full Access Full Access Capability Never Ask, No...
  • Page 60 openOutputStream(long byteOffset) The following javax.microedition.io.file.FileConnection methods should check for the “write permission”: • setFileConnection, when instance opened with WRITE; • setFileConnection, when instance opened with READ_WRITE. The bottom line prompt in the permission request dialog should include the name of the file or directory only for those protected API calls that have this information specified as a parameter.
  • Page 61: Jsr 184 - 3D Api

    JSR 184 requires a J2ME device supporting MIDP 2.0 and CLDC 1.1 at a minimum. Mobile 3D API The Motorola V3x contains full implementation of JSR 184 Mobile 3D API ). The Motorola V3x has also implemented the http://jcp.org/en/jsr/detail?id=184 following: •...
  • Page 62: Mobile 3D Api File Format Support

    Mobile 3D API File Format Support The Motorola V3x supports both M3G and PNG file formats for loading 3D content. The V3x supports the standard .m3g and .png extensions for its file formats. Mime type and not extension will be used for identifying file type. In the case that the Mime type is not available, M3G files will be identified using the file identifier and PNG files using signature.
  • Page 63: Figure 3 M3G Application Proccess

    Figure 3 M3G Application Proccess Most M3G applications use an M3G resource file that contains all the information required to define the 3D resources, such as objects, their appearance, lights, cameras and animations, in a scene graph. The file must be loaded into memory where object properties can be interrogated and altered using the M3G API.
  • Page 64: Figure 4 M3G Application Methods

    Figure 4 M3G Application Methods The World object contains the objects that define a complete 3D scene - geometry, textures, lights, cameras, and animations. The World object mediates access to the objects within the world. It can be passed as a block to the renderer, the Graphics3D class.
  • Page 65: Figure 5 Typical Midlet Structure

    Figure 5 Typical MIDlet Structure Initializing the world The Loader class is used to initialize the world. It has two static methods: one takes in a byte array, while the other takes a named resource, such as a URI or an individual file in the JAR package.
  • Page 66: Code Sample 3 Initializing The World

    Objects3D[] roots = Loader.load(getAppProperty("Content- 1")); // Assume the world is the first root node loaded. myWorld = (World) roots[0]; catch(Exception e) e.printStackTrace(); // Force a repaint so the update loop is started. myCanvas.repaint(); Code Sample 3 Initializing the world Using the Graphics3D object Using the Graphics3D is very straightforward.
  • Page 67: Code Sample 4 Using The Graphics3D Object

    Code Sample 4 Using the Graphics3D object The finally block makes sure that the target is released and the Graphics3D can be reused. The bindTarget call must be outside the try block, as it can throw exceptions that will cause releaseTarget to be called when a target has not been bound, and releaseTarget throwing an exception.
  • Page 68 Animations As well as controlling objects from code, scene designers can specify how objects should move under certain circumstances, and store this movement in “canned” or block animation sequences that can be triggered from code. Many object properties are animatable, including position, scale, orientation, color and textures. Each of these properties can be attached to a sequence of keyframes using an AnimationTrack.
  • Page 69: Jsr 185 - Jtwi

    • At least a JAR file size of 64 KB • At least a RMS data size of 30 KB Any Motorola JTWI device will implement the following and pass the corresponding TCK: • CLDC 1.0 or CLDC 1.1 •...
  • Page 70: Cldc Related Content For Jtwi

    CLDC related content for JTWI JTWI is designed to be implemented on top of CLDC 1.0 or CLDC 1.1. The configuration provides the VM and the basic APIs of the application environment. If floating point capabilities are exposed to Java Applications, CLDC 1.1 will be implemented. The following CLDC requirements will be supported: •...
  • Page 71: Midp 2.0 Specific Information For Jtwi

    Digit: one of: • 0 1 2 3 4 5 6 7 8 9 NOTE: Hours will be between 0 and 23, and minutes will be between 00 and 50. For example, GMT +10 and GMT +0010 equates to ten hours and ten minutes ahead of GMT. When creating a TimeZone, the specified custom time zone ID is normalized in the following syntax: •...
  • Page 72: Specific Content For Jtwi

    garbage collection) affect the ability to achieve this requirement. At least 80% of test attempts will meet the schedule resolution requirement to achieve acceptable conformance. Minimum Number of Timers will allow a MIDlet to create a minimum of 5 simultaneously running Timers. This requirement is independent of the minimum specified by the Minimum Application Thread Count.
  • Page 73: Specific Content For Jtwi

    MIDP 2.0 Security specific content for JTWI • The Motorola V3x follows the security policy outlined in the Security chapter of this developer guide.
  • Page 74: Jsr 82 - Bluetooth Api

    JSR 82 - Bluetooth API Overview JSR-82 covers the establishment of connections between devices for such applications as peer-to-peer gaming and Bluetooth pen use. There are two new requirements from this API. The javax.bluetooth package is needed to establish general Bluetooth connections. The javax.obex package is needed to provide Object Exchange support over Bluetooth and other transports.
  • Page 75: Bluetooth Control Center

    The base security settings of the local device, including the security modes defined in the Bluetooth specification. Device Property Table The Table 19 lists the Motorola Bluetooth device properties for current products. These device properties must be available to the MIDlet suite. Device Property Description bluetooth.api.version...
  • Page 76: Service Registration

    Maximum number of service attributes to be retrieved per service record. The string will be in Base10 digits. This value is product dependent. Table 19 Motorola Bluetooth device properties Service Registration Service Registration is the portion of the BCC that controls the Service Discovery Database (SDDB).
  • Page 77: Communication

    • 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.
  • Page 78: Security Policy

    • Before an SPP client can establish a connection to an SPP service, it must discover that service via service discovery. • A service discovery is not required if the SPP service had been discovered previously. Object Exchange (OBEX) OBEX is a protocol used for “pushing” and “pulling” objects (i.e. files or data) from one device to another.
  • Page 79: External Events

    External Events The following interruptions must be handled by kvm and MIDlet suite. Incoming Call Rules: Upon receiving an incoming call: • The Bluetooth connection shall remain active when the MIDlet is suspended. The Bluetooth connection shall be terminated when the user Ends the MIDlet. Incoming Message Rules: Upon receiving an incoming message:...
  • Page 80: Pressing Of End Key

    Pressing of End Key Figure 6 Pressing of End Key Rules: • Pressing the END key shall: o Terminate any ongoing Bluetooth connection. If possible, notify other device that session will be disconnected. • End MIDlet suite and kvm and return phone to Idle. Hardware Requirements Requires J2ME and Bluetooth wireless technology for the javax.bluetooth support.
  • Page 81: Midp 2.0 Security Model

    MIDP 2.0 Security Model The following sections describe the MIDP 2.0 Default Security Model for the Motorola V3x handset. The chapter discusses the following topics: • Untrusted MIDlet suites and domains • Trusted MIDlet suites and domains • Permissions •...
  • Page 82: Untrusted Midlet Suites

    package All constructors and inherited methods for the Supported MIDletStateChangeException class in the javax.microedition.midlet package Table 21 MIDP 2.0 Feature/Class Please note the domain configuration is selected upon agreement with the operator. Untrusted MIDlet Suites A MIDlet suite is untrusted when the origin or integrity of the JAR file cannot be trusted by the device.
  • Page 83: Trusted Midlet Suites

    User Permission Interaction Mode User permission for the Motorola V3x handsets is designed to allow the user the ability to either deny or grant access to the protected API or function using the following interaction modes (bolded term(s) is prompt displayed to the user):...
  • Page 84: Implementation Based On Recommended Security Policy

    Policy The required trust model, the supported domain, and their corresponding structure will be contained in the default security policy for Motorola’s implementation for MIDP 2.0. Permissions will be defined for MIDlets relating to their domain. User permission types, as well as user prompts and notifications, will also be defined.
  • Page 85: Table 22 Trusted 3Rd Party Domain

    disabling root certificates. These third party root certificates will not be used to verify downloaded MIDlet suites. The user will be able to enable any disabled trusted third party protection domain root certificates. If disabled, the third party domain will no longer be associated with this certificate.
  • Page 86: Security Policy For Protection Domains

    Security Policy for Protection Domains The table 24 lists the security policy by function groups for each domain. Under each domain are the settings allowed for that function within the given domain, while the bolded setting is the default setting. The Function Group is what will be displayed to the user when access is requested and when modifying the permissions in the menu.
  • Page 87: Table 25 Midp 2.0 Specific Functions

    MIDP 2.0 Specific Functions Permission Protocol Function Group javax.microedition.io.Connector.http http Data Network javax.microedition.io.Connector.https https Data Network javax.microedition.io.Connector.datagra Datagram Data Network javax.microedition.io.Connector.datagra datagram server (w/o host) Data mreceiver Network javax.microedition.io.Connector.socket Socket Data Network javax.microedition.io.Connector.servers server socket (w/ o host) Data ocket Network javax.microedition.io.Connector.ssl Data...
  • Page 88: Displaying Of Permissions To The User

    Specially designed certificates for code signing can be obtained from the manufacturer, operator, or certificate authority. Only root certificates stored on the handset will be supported by the Motorola V3x handset. Signer of MIDlet Suites The signer of a MIDlet suite can be the developer or an outside party that is responsible for distributing, supporting, or the billing of the MIDlet suite.
  • Page 89: Midlet Attributes Used In Signing Midlet Suites

    MIDlet suite, while the public key is provided as a x.509 certificate included in the application descriptor (JAD). MIDlet Attributes Used in Signing MIDlet Suites Attributes defined within the manifest of the JAR are protected by the signature. Attributes defined within the JAD are not protected or secured. Attributes that appear in the manifest (JAR file) will not be overridden by a different value in the JAD for all trusted MIDlets.
  • Page 90: Creating The Rsa Sha-1 Signature Of The Jar

    <n>:= a number equal to 1 for first certification path in the descriptor, or 1 greater than the previous number for additional certification paths. This defines the sequence in which the certificates are tested to see if the corresponding root certificate is on the device. <m>:= a number equal to 1 for the signer’s certificate in a certification path or 1 greater than the previous number for any subsequent intermediate certificates.
  • Page 91: Verifying The Midlet Suite Jar

    5. If attribute MIDlet-Certificate-<n>-<m> with <n> being greater than 1 are present and full certification path could not be established after verifying MIDlet- Certificate-<1>-<m> certificates, then repeat step 1 through 3 for the value <n> greater by 1 than the previous value. The Table 26 describes actions performed upon completion of signer certificate verification: Result...
  • Page 92: Carrier Specific Security Model

    “Application installed, but may have limited functionality.” JAD present but is JAR is Authentication can not be performed, will install JAR. MIDlet suite is unsigned treated as untrusted. The following error prompt will be shown, “Application installed, but may have limited functionality.” JAR signed but no root certificate Authentication can not be performed.
  • Page 93 Bound certificates will take advantage of the High Assurance Boot system implemented at Motorola. The main difference becomes relevant during the creation of the signing certificate for the developer. Below are the steps necessary for the developer to follow: •...
  • Page 94 MIDlet shall not be installed if the domain policy flexed on the target device doesn't include an appropriate domain. * SRP - MIDP 2.0 Security Recommended Practice for GSM/UMTS compliant devices.
  • Page 95: Prevent Downloading Of Large Java Midlets

    Prevent Downloading of Large Java MIDlets Overview This feature makes flexible way of preventing the large JAR files OTA download. The current functionality is as follows: • The user is able to download any JAR file independently from its file size via the WAP browser.
  • Page 96: Notification

    • The system shall only download JAR files that are less than or equal to the maximum size specified in flex database. • The size of JAR accompanied by JAD files download shall be controlled by the flex element. Notification When the JAR file size exceeds the maximum value set, then the notice shall appear to inform the user that the JAR file download was aborted.
  • Page 97: Launch Native Streaming Video Client From Java Application

    Launch native streaming video client from Java application Overview This feature delivers a capability for a Java application (MIDlet) to launch a native video streaming client on the handset. Possible use case may be for the user to use a MIDlet to access a streaming video programming channel on the network, select a channel to watch, and the MIDlet launching the native streaming video application to deliver the picture to user.
  • Page 98: Jsr 139 - Cldc 1.1

    JSR 139 – CLDC 1.1 JSR 139 CLDC 1.1 is an incremental release of CLDC version 1.0. CLDC 1.1 is fully backwards compatible with CLDC 1.0. Implementation of CLDC 1.1 supports the following: Floating Point − Data Types float and double −...
  • Page 99 String intern () Returns a canonical representation for the string object Static String valueOf (float f) Returns the string representation of the float argument Static String valueOf (double Returns the string representation of the double argument Data Type Java.lang.Float New Class: Refer to CLDC Spec Classes for more details Java.lang.Double...
  • Page 100 sequence Int nextInt (int n) Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator’s sequence Java.lang.Math Static double E The double value that is closer than any other to e, the base of the natural logarithms Static double PI The double value that is closer...
  • Page 101: Table 28 Additional Classes, Fields, And Methods Supported For

    Static double tan (double a) Returns the trigonometric tangent of angle Static double todegrees Converts an angle measured in (double angrad) radians to the equivalent angle measured in degrees Static double toradians Converts an angle measured in (double angdeg) degrees to the equivalent angle measured in radians Table 28 Additional classes, fields, and methods supported for CLDC 1.1 compliance...
  • Page 102: Appendix A: Key Mapping

    Appendix A: Key Mapping Key Mapping for the V3x Table 29 identifies key names and corresponding Java assignments. All other keys are not processed by Java. Assignment NUM0 NUM1 NUM2 NUM3 NUM4 SELECT, followed by NUM5 NUM6 NUM7 NUM8 NUM9...
  • Page 103: Table 30 Gamecanvas Class Of Midp 2.0

    Table 30 identifies keys that will be assigned to game actions defined in GameCanvas class of MIDP 2.0. Action First Set Second Set Third Set Non-simultaneous keys Left Nav (LEFT) Right Nav (RIGHT) Nav (UP) Down Nav (DOWN) Game_A Game_B Game_C Game_D Game_Fire...
  • Page 104: Appendix B: Memory Management Calculation

    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: Appendix C: Faq

    The MOTOCODER developer program is online and able to provide access to Frequently Asked Questions around enabling technologies on Motorola products. Access to dynamic content based on questions from the Motorola J2ME developer community is available at the URL listed below.
  • Page 106: Appendix F: Spec Sheet V3X

    Appendix F: Spec Sheet V3x V3x Spec Sheet Listed below are the spec sheets for the V3x. The spec sheets contain information regarding the following areas: • Technical Specifications • Key Features • J2ME Information • Motorola Developer Information •...
  • Page 107 MIDP v2.0 specifications: http://www.motocoder.com http://www.java.sun.com/products/midp Tools: CLDC v1.0 specifications: http://www.java.sun.com/products/cldc J2ME™ SDK version v4.0 Motorola Messaging Suite v1.1 WAP forum: http://www.wap.org MMS standards: http://www.3GPP.org Documentation: Purchase: Creating Media for the Motorola V3x Handset Visit the Motocoder Shop at http://www.motocoder.com/ Accessories: http://www.motorola.com/consumer...
  • Page 108: Appendix H: Quick Reference

    Appendix H: Quick Reference CLDC, 12, 17, 19, 23, 28, 29, 35, 56, 62, 70, 71, 108 JSR 118, 19, 26, 27, 28 Direct Cable, 22 JSR 120, 18, 28, 31, 33, 108 DRM, 12, 27 Memory, 14, 22, 24, 58, 105 GPRS, 13, 108 MIDP, 11, 14, 17, 19, 21, 23, 26, 27, 28, 30, 32, 54, HTTP, 21, 30, 32, 52, 72, 74, 83, 108...
  • Page 109 MOTOROLA and the Stylized M Logo are registered in the U.S. Patent & Trademark Office. All other product or service names are the property of their respective owners. Java and all other Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

Table of Contents