October 2004 UIQ C++ and PersonalJava P800, P900 and P910 series
Developers Guideline UIQ C++ and PersonalJava Preface Purpose of this document This document describes the UIQ C++ and Personal Java support for the Sony Ericsson P800, P900 and P910 series. Readers benefiting from this document include: • Business decision-makers • Support engineers • Corporate buyers • Software developers • IT professionals For more up-to-date information about technologies, products and tools refer to Sony Ericsson Developer World.
Developers Guideline UIQ C++ and PersonalJava Document history Change history 2003-10-31 Version R1A First release 2004-08-18 Version R2A Second release, P910 updates 2004-10-11 Version R3A Third release, updates and editorial changes Trademarks and acknowledgements Sun, Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Symbian and all Symbian-based marks and logos are trademarks of Symbian Limited.
Developers Guideline UIQ C++ and PersonalJava URI Uniform Resource Identifier WMA Wireless Messaging API URL Uniform Resource Locator WTK Wireless Toolkit Online Developer Resources On the Sony Ericsson Developer World website, http://www.sonyericsson.com/developer/, developers will find all documentation and tools such as phone White Papers, Developers Guidelines, SDK's and API's, and so on.
Developers Guideline UIQ C++ and PersonalJava Contents Purpose of this document .........................................................................................2 Document history ......................................................................................................3 Trademarks and acknowledgements ....................................................................3 Terminology and abbreviations .............................................................................
Developers Guideline UIQ C++ and PersonalJava On-target debugging ...............................................................................................25 Signing digital applications .....................................................................................26 Symbian Signed ...................................................................................................26 Installing ”Symbian Signed” applications on the P800, P900 and P910 series26 Go-to-Market opportunities ........
Developers Guideline UIQ C++ and PersonalJava Technical overview and architecture This document is valid for the Sony Ericsson P800, P900 and P910 series mobile phones. The Sony Ericsson P800, P900 and P910 series mobile phones are based on the Symbian™ UIQ user interface. UIQ is a pen-based user interface platform for media rich mobile phones based on the Symbian Operating System (OS).
Developers Guideline UIQ C++ and PersonalJava A developer’s perspective on the P800, P900 and P910 series The P800, P900 and the P910 series are based on Symbian OS 7.0. The P800 User Interface (UI) is based on UIQ 2.0, whereas the P900 and P910 series are based on UIQ 2.1. The table below presents a comparison of what is supported by the different phones and what developers need to consider when designing applications: Technical data P910 series P900 series P800 series SDK support UIQ 2.1, 2.
Developers Guideline UIQ C++ and PersonalJava Application development This chapter contains information for the developer of C++ and PersonalJava™ applications for the Sony Ericsson P800, P900 and P910 series of mobile phones.
Developers Guideline UIQ C++ and PersonalJava General information about the P900 series The table below lists the major features of the P900 series: Feature Support Third party application support • • • • C++ PersonalJava J2METM CLDC/MIDP 2.0 with JSR 120 and JSR 82.
Developers Guideline UIQ C++ and PersonalJava • Make sure your AppUi is derived from CQikAppUi (Qikon) and not from CEikAppUi (Uikon). • Ensure that your application is “theme aware”. Use logical colors to draw application controls and propagate color scheme change messages through your application. • Add a large version of your application icon for display in the Applauncher icon view. • The media server supports MP3 audio files.
Developers Guideline UIQ C++ and PersonalJava ated beneath the audio folder. Unfiled folders are created in the initial folder structure and all material is placed in the unfiled folder by default. Sony Ericsson Multimedia Content is stored in ‘Sony Ericsson’ subfolders. When the file system is viewed from a PC using PC Suite, the C: drive is called 'Phone Memory'. Only a subset of the folders is accessible.
Developers Guideline UIQ C++ and PersonalJava C++ Applications written in C++ have the most direct access to hardware and functions of the phone and require in-depth knowledge of Symbian C++. Since C++ is a compiled language, the applications run faster and have a faster startup time than those written in pJava, J2ME or Visual Basic. This does not imply that applications written in other languages will be slow.
Developers Guideline UIQ C++ and PersonalJava PersonalJava This section offers advice about developing PersonalJava applications. This requires Symbian OS environment specific knowledge not needed for MIDP application development. PersonalJava (referred to as “pJava” in this document) was one of the first Java programming environments targeted for development of applications for resource-constrained devices. These devices include PDAs (Personal Digital Assistants) and Communicators/Smartphones.
Developers Guideline UIQ C++ and PersonalJava • It is recommended to install Sun J2SDK. When using the J2SDK, it is important to compile using a pJava “classes.zip” file. Such a file can be found in the UIQ SDK. Also, the javac compiler directive “target 1.1” must be used for the J2SDK to assure that JDK 1.1.* compatible bytecode is generated. A good example of this can be found on the Sun web page: http://java.sun.com/j2se/1.5.0/docs/ tooldocs/windows/javac.html#crosscomp-example.
Developers Guideline UIQ C++ and PersonalJava Behaviour related to flip modes The P800, P900 and P910 series operates in two distinctly different UI modes: Flip Open (FO) and Flip Closed (FC). pJava applications can be launched and can only appear on screen while in the FO mode. On transition from FO to FC, the UI of any pJava application being executed becomes out of focus (hidden) and the user is unable to interact with the application.
Developers Guideline UIQ C++ and PersonalJava UIQ SDK for Symbian OS v7.0 The UIQ SDK contains: • Library files • Documentation • Sample code • Tools for packaging applications into Symbian installable format (.sis) for C++ and Personal Java applications. These .sis files can be compared to ‘InstallShield’ in Microsoft® Windows® development environment.
Developers Guideline UIQ C++ and PersonalJava Skin images Sony Ericsson provides skin images and property files for changing the “look and feel” of the generic UIQ emulator of the Sony Ericsson P800, P900 and P910 series. The skin images are available at Sony Ericsson Developer World. In order to mirror the appearance of the phone’s screen in the UIQ Emulator, do the following: 1. Backup existing files in the UIQ SDK. \epoc32\data\epoc.bmp and \epoc32\data\epoc.ini 2.
Developers Guideline UIQ C++ and PersonalJava Sony Ericsson specific APIs The Sony Ericsson specific API:s and relevant documents can be found at Sony Ericsson Developer World. Camera API The Sony Ericsson Camera APIs for the P800, P900 and P910 series support: • Still image capturing of RGB bitmap based pictures in three sizes. • Still image mode direct-to-screen view finding of one fixed size (QQVGA).
Developers Guideline UIQ C++ and PersonalJava Streaming AMR API AMR is standard speech GSM encoding/decoding technology. It lets you play and record AMR encoded sound at different bit rates. This function can therefore be used by your application. The Streaming AMR API support is not supplied in the base software of the P800 and must therefore be installed separately. The package provided (StreamingAmr.sis) is used to add this Streaming AMR API to the device.
Developers Guideline UIQ C++ and PersonalJava The aInt values are listed in the table below: Device Device UID P910 aInt = 0x10200AC6 P900 aInt = 0x101FB2AE P800 aInt = 0x101F408B UIQ emulator aInt = 0x10005F62 Bluetooth For more information, see the C++/Bluetooth Special Interest Paper at Sony Ericsson Developer World. IMEI, IMSI The IMEI number can be obtained by reading C:\System\plpvar.ini The IMSI number can be obtained by reading C:\System\data\imsi.
Developers Guideline UIQ C++ and PersonalJava API Limitations Some components in the P800, P900 and P910 series have been replaced and therefore some of the standard Symbian/UIQ APIs are not valid. COMMDB Object The following interface has a slightly different behaviour: CCommsDbTableView::ReadTextL(const TDesC& aColumn, TDes8& aValue) The difference relates to the type of data stored in 'aColumn'. In the SDK version of COMMDB, 'aColumn' is either narrow text (EDbColText8) or wide text (EDbColText16).
Developers Guideline UIQ C++ and PersonalJava ETel ETel Core can be used to produce a simple telephony application. It handles placing of a call, answering a call and ending a call. It does not use GSM specific information such as signal strength and network name.
Developers Guideline UIQ C++ and PersonalJava 1. An application file (.app) minimally containing a unique identifier (UID) to identify the program. 2. An application information file (.aif) specifying the application’s icon and caption in the P800, P900 and P910 series Application Launcher list of applications. Note: There is no need to generate an .aif file. If this file does not exist, the application uses the default system icon. It is recommended that each application has a resource file and an .
Developers Guideline UIQ C++ and PersonalJava Installation and data storage Applications can be easily downloaded directly to the mobile phone using the browser, or may be installed from a connected PC, using USB, Infrared or Bluetooth. Applications can also be installed from a Memory Stick. Multimedia content such as images, movie clips, sound clips and general-purpose files such as Word documents can either be stored locally (C: drive) or on a Memory Stick (D: drive).
Developers Guideline UIQ C++ and PersonalJava Signing digital applications Symbian Signed “Symbian Signed” is a new program from Symbian that supports tested and digitally signed applications on Symbian OS phones. It is supported by all Symbian licensees including Sony Ericsson. A “signed” application means that the application has passed the test criteria and is digitally signed to guarantee the source and integrity of the application. Sony Ericsson encourages all users to use signed applications only.
Developers Guideline UIQ C++ and PersonalJava 4. Select "Certificate installation" to install the certificate. Upon successful installation, the Symbian certificate appears in the Certificate Authority list. It is now possible to install “Symbian Signed“ applications in a secure way on your phone! Go-to-Market opportunities Sony Ericsson provides you with the opportunity to have your applications marketed through the Sony Ericsson application shop at www.sonyericsson.com/applicationshop.
Developers Guideline UIQ C++ and PersonalJava Technical specifications and references This chapter provides technical references for the mobile phones in the scope of the document, and also information on reference documents and useful links.
Developers Guideline UIQ C++ and PersonalJava Technical specifications for the P800, P900 and P910 series Specification table: Characteristic P910 series P900 series P800 series Pixel ratio (H: W) 1:1 1:1 1:1 Colours 18-bit (262 144 colours) 16-bit (65 536 colours) 12-bit (4096 colours) Internal user storage 64 MB 16 MB 12 MB RAM 32 MB 16 MB 16 MB Other API support pJava supports JNI (Java Native Interface) pJava supports JNI (Java Native Interface) pJava supports JNI (Java Native I
Developers Guideline UIQ C++ and PersonalJava Links and references pJava on P800, P900 and P910 series pJava Application Environment http://java.sun.com/products/personaljava/ Refer also to the UIQ SDK documentation for pJava specifications Wireless Java for Symbian Devices http://www.symbian.com/books/wjsd/wjsd-info.html Java on Symbian http://www.symbian.com/technology/standard-java.html Links Symbian C++ developer http://www.symbian.com/developer/index.
Developers Guideline UIQ C++ and PersonalJava Index L Language files .................................................... 11 A A: drive ................................................................ 15 Aifbuilder ............................................................. 23 AMR .................................................................... 20 API support ......................................................... 29 Application files ...................................................