• x Main page
  • x Legal notice
  • + Guide to JavaTM ME Developer's Library 1.4
    • x Change history
    • x Supported releases
    • x Library contents
  • + Introduction to Mobile Java
    • + JavaTM and the mobile environment
      • x Java platforms
      • x Architecture of S60 and Series 40 platforms
      • x Mobile environment characteristics
      • x Differences between Java ME and Java SE/ Java EE platforms
    • + MIDP 2.0 and optional packages
      • x MIDP 2.0 features
      • + Optional APIs
        • x APIs supported in both S60 and Series 40
        • x APIs supported only in S60
      • x Java API release information
    • + MIDP applications (MIDlets)
      • x Security and MIDP applications
      • x Porting MIDP applications
    • + Devices
      • x S60 devices
      • x Series 40 devices
  • + Getting started with Mobile Java
    • + What you need to know
      • x Development environment requirements
    • + Development process overview
      • x MIDP project structure
      • x Creating and compiling source files
      • x Packaging MIDlets
    • + Implementing MIDlets
      • + MIDlet lifecycle
        • x Application Management Software
      • x Implementing MIDlet lifecycle requirements
      • x Push applications
      • x Persistent storage
    • + Example: HelloWorld MIDlet
      • x Creating the development environment
      • x Creating, building, and running the example application
      • x Source code for the example
    • + Designing MIDP applications
      • x Designing for multiple devices
      • + Basic considerations
        • x Content considerations
        • x Application performance and reliability
        • x Application security
        • x UI design practices
        • x Installation
    • + Testing MIDP applications
      • x The testing process
      • + Functionality testing
        • x Environmental changes
        • x Networking
        • x Wireless messaging
        • x Bluetooth connectivity
        • x Personal information management
        • x Record Management System (RMS)
        • x Pausing a MIDlet
      • x Usability testing
      • x Typical errors in Java ME applications
    • + Deploying MIDlets to a device
      • x Over-the-Air (OTA)
      • x Infrared (IR) and Bluetooth technology
      • x Serial Cable
      • x E-mail and MMS
    • + MIDP FAQ
      • x Tools
      • x MIDlets
      • x Devices
    • x Where to go next
  • + UI and graphics
    • + User interface design and graphics
      • + Introduction to UI
        • x Scalability
        • x Themes
    • + LCDUI
      • + LCDUI overview
        • x High-level APIs
        • x Low-level APIs
        • x Command handling
        • x Interplay with Application Management Software
      • + Using the LCDUI
        • x Alert
        • x List
        • x TextBox
        • + Form
          • x ChoiceGroup
          • x CustomItem
          • x DateField
          • x Gauge
          • x ImageItem
          • x Spacer
          • x StringItem
          • x TextField
        • x Canvas
        • x Graphics
        • x Command
      • + Example: Creating a simple test MIDlet
        • x Prerequisites
        • x Designing the SimpleTest MIDlet
        • + Developing the SimpleTest MIDlet
          • x Creating the project environment
          • x Implementing the MIDlet lifecycle and screen elements
          • x Creating the interaction with Canvas
          • x Building and running in an emulator
          • x Deploying to a device
    • + MIDP 2.0 games
      • x MIDP 2.0 Game API overview
      • + Using the MIDP 2.0 Game API
        • x GameCanvas
        • x MIDP 2.0 Media API
      • + Example: Using basic Game elements
        • x Prerequisites
        • x Implementation of the Sheepdog MIDlet
        • + Developing the Sheepdog MIDlet
          • x Creating the project environment
          • x Implementing the SheepDogMIDlet class
          • x Implementing the SplashScreen class
          • x Implementing the MenuList class
          • x Implementing the InstructionsScreen class
          • x Implementing the HighScoreScreen class
          • x Implementing the SheepdogCanvas class
          • x Implementing the Field class
          • x Implementing the Sheepdog class
          • x Implementing the Sheep class
          • x Implementing the GameOverScreen class
          • x Implementing the SoundEffects class
          • x Building and running in an emulator
          • x Deploying to a device
    • + Mobile 3D graphics
      • x Mobile 3-D Graphics API overview
      • + Using the M3G API
        • x Graphics3D
        • x Scene graph
      • + Example: Using 3D graphics in application development
        • x Prerequisites
        • + Implementation of the Maze3DMIDlet
          • x Implementation of the Scene Graph
          • x Maze Construction and Geometry
          • x Camera / Player Movement
          • x Game Setup
        • + Developing the Maze3DMIDlet
          • x Creating the project environment
          • x Implementing the Maze3DMIDlet class
          • x Implementing the MazeCanvas class
          • x Implementing the Maze class
          • x Implementing the Plane class
          • x Implementing the MenuList class
          • x Implementing the Graphics3DProperties class
          • x Implementing the ErrorScreen class
          • x Building and running in an emulator
          • x Deploying to a device
    • + Scalable 2D vector graphics
      • + Scalable 2D Vector Graphics API overview
        • x Scalability
        • x Main use cases
      • + Example: Creating SVG graphics
        • x Prerequisites
        • x Implementation of the HelloWorldMidlet
        • + Developing the HelloWorldMidlet
          • x Creating the project environment
          • x Implementing the HelloWorldMidlet
          • x Creating the SvgCanvas1 class
          • x Building and running in an emulator
          • x Deploying to a device
      • + Example: Loading and manipulating pre-generated SVG graphics
        • x Prerequisites
        • x Implementation of the LoadStaticMidlet
        • + Developing the LoadStaticMidlet
          • x Creating the project environment
          • x Implementing the LoadStaticMidlet
          • x Creating the SvgCanvas2 class
          • x Building and running in an emulator
          • x Deploying to a device
      • + Example: Playing animated SVG content
        • x Prerequisites
        • x Implementation of the LoadStaticMidlet
        • + Developing the SvgAnimatorMidlet
          • x Creating the project environment
          • x Implementing the SvgAnimatorMidlet
          • x Building and running in an emulator
          • x Deploying to a device
  • + Multimedia
    • x Multimedia in mobile application development
    • + Multimedia applications
      • x Mobile Media API overview
      • + Using the Mobile Media API
        • x Architecture
        • x Player State Model
        • x Player Content Types
        • x Checking API availability
        • + Playing Tones and Tone Sequences
          • x Playing tone sequences
          • x Playing tones from stream
        • x Playing sampled sound and MIDI
        • + Playing Video
          • x Saving resources when playing video multiple times
        • x Recording sound and video
        • x Time Bases
        • x Taking photos
        • x StopTimeControl
        • x VolumeControl
        • x Security issues
        • x SDK versus devices
        • + Recommended practices
          • x Content Type selection
          • x Application resource management
          • x Player pooling
          • x Remote resources
          • x Minimizing media playback delay
          • x Restarting the Player after being unavailable
          • x Stopping playback when a MIDlet is switched to the background
          • x Playing DRM-protected media
      • + MMAPI Example: Creating a multimedia player
        • + Media Sampler MIDlet
          • x AudioCanvas
          • x Video source selector
          • x VideoCanvas
          • x DRM MIDI
          • x MMAPI support
        • x Prerequisites
        • x Implementation of the Media Sampler MIDlet
        • + Developing the Media Sampler MIDlet
          • x Creating the project environment
          • x Implementing MediaSamplerMIDlet
          • x Creating Media
          • x Creating MediaFactory
          • x Creating DRMPlayer
          • x Creating PlayerPool
          • x Creating AudioCanvas
          • x Creating MediaList
          • x Creating SupportForm
          • x Creating VideoCanvas
          • x Creating VideoSourceSelector
          • x Building and running in an emulator
          • x Deploying to a device
    • + Advanced multimedia supplements
      • x Advanced Multimedia Supplements API overview
      • + Using the AMMS API
        • x EffectModule
        • x GlobalManager
        • x Module
        • x SoundSource3D
        • x Spectator
        • + Controls in AMMS
          • x EffectControl
          • x PanControl
          • x PriorityControl
          • x CommitControl
          • x DistanceAttenuationControl
          • x DopplerControl
          • x LocationControl
          • x OrientationControl
          • x AudioVirtualizerControl
          • x EqualizerControl
          • x ReverbControl
          • x ReverbSourceControl
        • x System property usage
      • + Example: 3D audio in application development
        • x Prerequisites
        • x Implementation of the AMMSMIDlet
        • + Developing the AMMSMIDlet
          • x Creating the project environment
          • x Implementing the AMMSMIDlet
          • x Implementing the House class
          • x Implementing the MansionCanvas class
          • x Implementing the Source class
          • x Implementing the Trig class
          • x Implementing the Walker class
          • x Building and running in an emulator
          • x Deploying to a device
  • + Security
    • + Introduction to MIDP security
      • x Security risks in the MIDP environment
      • x Protection Domains
      • x Permissions framework
      • x Trusted MIDlets
      • x Untrusted MIDlets
      • x User granted permissions
      • x APIs and security
      • x Developer's guides
    • + Signed MIDlets
      • + Example: Signing MIDlets
        • x Prerequisites
        • x Creating the project environment
        • x Creating SignedMIDlet
        • x Adding permissions
        • + Signing the MIDlet
          • x Signing procedure using command line utilities
        • + Running the MIDlet either as untrusted or trusted
          • x Untrusted MIDlet
          • x Trusted MIDlet
        • x Deploying to a device
        • x Troubleshooting the signing procedure
      • + Recommended practices
        • x Certificate acquisition
        • x Certificates' trust settings
        • x Certificate chains
        • x Certificate expiration
        • x Certificate revocation
        • x MIDlet updates
      • + Appendix A Summary of Protected Methods
        • x MIDP 2.0
        • x Mobile 3D Graphics API (JSR-184)
        • x Bluetooth API (JSR-82) (Excluding OBEX)
        • x Wireless Messaging API (JSR-120)
        • x Wireless Messaging API 2.0 (JSR-205)
        • x Mobile Media API 1.1 (JSR-135)
        • x Location API (JSR-179)
        • + PDA Optional Packages (JSR-75)
          • x File Connection API
          • x PIM API
        • x SIP API (JSR-180)
        • x J2METM Web Services (JSR-172)
        • x Security and Trust Services API (JSR-177)
    • + Encrypted messages
      • x SATSA-CRYPTO overview
      • + Using SATSA-CRYPTO
        • x Encryption/Decryption
        • x Message Digests
        • x Signatures
      • + Example: Creating encrypted messages
        • x Prerequisites
        • x Implementation of SATSA MIDlet
        • x Creating the project environment
        • + Developing SATSA MIDlet
          • x Implementing the SATSAMIDlet
          • x Implementing the Codec class
          • x Implementing the MessageStore class
          • x Implementing the ListScreen class
          • x Implementing the NewScreen class
          • x Implementing the EncryptScreen class
          • x Implementing the PasswordScreen class
          • x Implementing the DecryptScreen class
          • x Implementing the InfoScreen class
        • x Building and running in an emulator
        • x Deploying to a device
    • + Digital signatures
      • x SATSA-PKI overview
      • + Using SATSA-PKI
        • x Creating signing requests and managing user credentials
        • x Using signature services
      • + Example: Creating digital signatures
        • x Prerequisites
        • x Implementation of the PKI MIDlet
        • x Developing the PKI MIDlet
        • x Building and running in an emulator
        • x Deploying to a device
    • + APDU messages
      • x SATSA-APDU overview
      • x Using SATSA-APDU
      • + Example: Creating an APDU connection
        • x Prerequisites
        • x Implementation of the APDU MIDlet
        • x Developing the APDU MIDlet
        • x Building an running in an emulator
        • x Deploying to a device
  • + Wireless messaging
    • x Wireless messaging in JavaTM ME
    • + MMS messages
      • x Wireless Messaging API 2.0 overview
      • x Using the Wireless Messaging API 2.0
      • + Example: Creating and sending MMS messages
        • x User Interface
        • x Prerequisites
        • x Implementing the MMS MIDlet
        • + Developing the MMS MIDlet
          • x Creating the project environment
          • x Implementing the MMSMIDlet class
          • x Implementing the SendScreen class
          • x Implementing the ReceiveScreen class
          • x Implementing the CameraScreen class
          • x Implementing the InfoScreen class
          • x Building and running in an emulator
          • x Deploying to a device
  • + Data handling
    • x Data Handling in JavaTM ME
    • + File access
      • x FileConnection API overview
      • + Using FC API
        • x FileConnection interface considerations
        • x Security considerations
        • x Nokia-Specific Directories
      • + Example: Creating a file access system
        • x Prerequisites
        • x Implementation of ImageViewer
        • x Creating the project environment
        • + Developing ImageViewer
          • x ImageViewerMIDlet
          • x FileSelector
          • x OperationsQueue and Operation
          • x ImageCanvas
          • x InputScreen
          • x ErrorScreen
        • x Building and running in an emulator
        • x Deploying to a device
    • + PIM event handling
      • x PIM API overview
      • + Using the PIM API
        • x Security considerations
        • + PIMList databases
          • x Contact list database
          • x Event list database
          • x ToDo database
      • + Example: Creating and sending an event
        • x Prerequisites
        • x Implementation of Event-Sharing MIDlet
        • x Creating the project environment
        • + Developing Event-Sharing MIDlet
          • x EventSharingMIDlet
          • x EventCreationForm
          • x IncomingEventForm
          • x ContactsListForm
          • x OperationsQueue and Operation
          • x ErrorScreen
        • x Building and running in an emulator
        • x Deploying to a device
  • + Networking
    • x Networking in JavaTM ME
    • + Web Services
      • x Web Services package overview
      • x XML optional package overview
      • + Using the JAX-RPC package
        • x Supported XML and JavaTM types
        • x Security
      • x Using the XML package
      • + Example: Creating a remote server connection
        • x Creating the project environment
        • x Prerequisites
        • x Server Side
        • x Client Side
        • x Implementation of Capital MIDlet
        • + Developing Capital MIDlet
          • x Creating CapitalPortType
          • x Creating CapitalBinding_Stub
          • x Creating CapitalMIDlet
          • x Creating Poster
          • x Creating PosterListener
          • x Creating Screen
          • x Creating WelcomeScreen
          • x Creating MainScreen
          • x Creating WaitingScreen
          • x Creating ResultsScreen
          • x Creating ErrorScreen
        • x Building and running in an emulator
        • x Deploying to a device
    • + SIP connections
      • + SIP API overview
        • x SIP architecture
        • x Main use cases
        • x SIP request methods
      • + Example: Creating a SIP INVITE session
        • x Prerequisites
        • x Implementation of the OriginatingInvite and TerminatingInvite MIDlets
        • + Developing the the OriginatingInvite and TerminatingInvite MIDlets
          • x Creating the project environment
          • x Implementing the OriginatingInvite MIDlet
          • x Implementing the TerminatingInvite MIDlet
          • x Building and running in an emulator
          • x Deploying to a device
    • + Bluetooth connections
      • + Bluetooth technology and JavaTM APIs for Bluetooth (JSR-82) overview
        • + Bluetooth connections
          • x