Transcript
Page 1: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 1/174

Nokia Series 40 Full Touch Training

03 May 2013, Da [email protected]

Page 2: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 2/174

Why Asha?

Page 3: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 3/174

Volumes › Q4 2012› 9,3 millions devices

Page 4: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 4/174

Successful Developers

Page 5: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 5/174

Asha TouchContests

› 2012

› 3 contests

› Given prizes:› 1 Lumia 920

› 1 Lumia 820

› 70 Asha Full Touch

Page 6: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 6/174

6

Page 7: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 7/174

Series 40

Platform NewFeatures

Page 8: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 8/174

Device Family

› SDK 2.0

› SDK 1.1

› Touch-and-type

› Non-touch

› S40 6th Edition FP1

› S40 6th Edition

› S40 5th Edition Fp1› ...

Page 9: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 9/174

Series 40

Platform: Newand EnhancedFeatures

› Keyboard check

› Back button

› Category bar

› Status bar

› Header bar

› Forms and text input

› PopupList

Page 10: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 10/174

Series 40

Platform: Newand EnhancedFeatures

› Full screen and commandsmenu

› Badge API

› Theming

› Pinch gesture

› Multi-touch

› Fixed and dynamicorientation

Page 11: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 11/174

Series 40

Platform: Newand EnhancedFeatures

› Font STYLE_LIGHT

› VideoDecode control

› Maps new features

› Locale listener

› Using new sensors

› Additional system properties

Page 12: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 12/174

Asha 305, 2.5G, Dual SIM, Resistive Touch

Maximum User Storage: 10 MB

(Additional 2GB memory card included)

ROM Memory: 64 MB

RAM Memory: 32 MB

Maximum Memory Card Size: 32 GB

Maximum Heap Size: 2 MB

Maximum JAR Size: 2 MB

Page 13: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 13/174

Asha 306, 2.5G, WLAN, Resistive Touch

Maximum User Storage: 10 MB

(Additional 2GB memory card included)

ROM Memory: 64 MB

RAM Memory: 32 MB

Maximum Memory Card Size: 32 GB

Maximum Heap Size: 2 MB

Maximum JAR Size: 2 MB

Page 14: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 14/174

Asha 311, WLAN, 3G, Capacitive Touch

Maximum User Storage: 140 MB

ROM Memory: 256 MB

RAM Memory: 128 MB

Maximum Memory Card Size: 32 GB

Maximum Heap Size: 4 MB

Maximum JAR Size: 2 MB

Page 15: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 15/174

Asha 308, 2.5G, Dual SIM, Capacitive Touch

Maximum User Storage: 20 MB

(Additional 2GB memory card included)

ROM Memory: 128 MB

RAM Memory: 64 MB

Maximum Memory Card Size: 32 GB

Maximum Heap Size: 2 MB

Maximum JAR Size: 2 MB

Page 16: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 16/174

Asha 309, 2.5G, WLAN, Capacitive Touch

Maximum User Storage: 20 MB

(Additional 2GB memory card included)

ROM Memory: 128 MB

RAM Memory: 64 MB

Maximum Memory Card Size: 32 GB

Maximum Heap Size: 2 MB

Maximum JAR Size: 2 MB

Page 17: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 17/174

(Device View Video)Asha 305, Asha 311

Page 18: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 18/174

Page 19: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 19/174

Series 40 Phones

Filter by Series 40 Edition or

Java Runtime version (new phones)

developer.nokia.com/Devices

Page 20: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 20/174

Series 40 & Java RuntimeJava Runtime Series 40 Version Phones

2.0.0 Series 40 Asha 305, 306, 311, 308, 309, 307, 310

1.1.0 Series 40 Asha 200, 201, 302, 303

1.0.0 Series 40 Asha 202, 203, C2-00, C2-02, C2-03, C2-05, C2-06,

X2-02, X2-05

N/A Series 40 6th Edition, FP 1 Asha 300, C3-01, X3-02

N/A Series 40 6th Edition C2-01, C3-00, X2-00, X2-01, 6303i, 7230, 6350, 6750,

3720, ...

N/A Series 40 6th Edition Lite C1-01, C1-02

N/A Series 40 5th Edition, FP1 2690, 3208, 6600i, 2730, 2700, 6208, 6600, 8800, ...

N/A Series 40 5th Edition, FP1 Lite 2220, 2720, 2320, 2330, 5000...

N/A Series 40 5th Edition 3610, 6263, 6555, 7500, 6267

Page 21: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 21/174

CLDC MIDP 248

MSA

185

JTWI

75

File

82

BT

135

Media

172

Web

RPC

172

Web

XML

177

SATS

 AAPDU

177

SATS

 ACRYPT

179

Locati

on

184

3D

205

Mess

aging

211

Conte

nt

226

SVG

234

 Audio

3D

234

Came

ra

234

Music

256

Senso

Nokia

UI

IAP

2.0.0 1.1 2.1 1.1 - 1.0 1.1 1.2 1.0 1.0 1.0 1.0 1.0 1.1 2.0 1.0 1.1 1.1 1.1 1.1 1.0 1.6 2.0

1.1.0 - - 1.1 1.0

1.0.0 - - 1.1b -

S406th,

FP1

- - 1.1b -

S40

6th

√ - √ - 1.1 -

S40

6th

Lite

- √ - - - - - - -

S40

5th

FP1

√ - 1.1 - √ 1.0 - 1.0 - -

S40

5th

FP1 L

- √ - - - - - - - - - - - -

S40

5th

√ - 1.1 1.0 1.0 - 1.1 - √ 1.0 - 1.0 - -

Page 22: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 22/174

(HelloWorld Video)

Page 23: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 23/174

Page 24: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 24/174

Remote Device Access» Now supports Series 40

 –  Free for Nokia Developer users

 –  Deploy & Test apps

 –  http://www.developer.nokia.com/Devices

/Remote_device_access/

Page 25: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 25/174

UI Style&Screen Elements

Page 26: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 26/174

Full Touch› 2 or 5 point multi-touch

› Resistive or capacitive

› 240x400 screen

Page 27: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 27/174

Page 28: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 28/174

Page 29: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 29/174

Page 30: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 30/174

Page 31: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 31/174

Full Touch UI» Screen

 –  240 x 400 Pixels

 –  3:5 aspect ratio

 –  Previous QVGA = 3:4

 –   Affects UI of canvas-based app

» New features:

 –   Action buttons

 –  Category bar 

 –  Back button

Page 32: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 32/174

Back Button› Automatically added to

lower right corner for thehighest priority

Command.BACK orCommand.EXIT

› Any additional BACK or EXITcommands of lower priority

are on the drop down menu

Page 33: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 33/174

Action Button› Automatically added to top

left corner for the highest

priority Command.OK› Use IconCommand to

specify the icon

› Otherwise it is

Page 34: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 34/174

Page 35: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 35/174

Page 36: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 36/174

Page 37: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 37/174

Page 38: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 38/174

Page 39: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 39/174

Page 40: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 40/174

Page 41: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 41/174

Page 42: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 42/174

Page 43: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 43/174

Page 44: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 44/174

Page 45: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 45/174

Page 46: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 46/174

Page 47: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 47/174

Page 48: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 48/174

Page 49: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 49/174

Page 50: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 50/174

Page 51: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 51/174

Get and setup the tools:

1. Check your system requirements.

2. Download JDK 6 Update 27 and install it.

3. Download the NetBeans IDE’s ‘all’ package and install it.

4. Download the Nokia SDK 2.0 for Java and install it.

5. Download Nokia Suite and install it.

6. Activate the Java ME option in NetBeans using Plugins ontheTools menu.

7. Add your SDK to NetBeans’ list of Java platforms, using JavaPlatforms on the Tools menu.

Java - Getting started with NetBeans IDE

Page 52: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 52/174

Java - Getting started with NetBeans IDE

https://www.developer.nokia.com/Develop/Java/Getting_started/NetBeans/

Page 53: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 53/174

Demo- Form elements

Page 54: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 54/174

Exercises

Page 55: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 55/174

Page 56: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 56/174

Page 57: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 57/174

Page 58: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 58/174

Status Bar» Show status zone in full screen app

public class MainCanvas extends Canvas{

public MainCanvas()

{// Activate full screen modesetFullScreenMode(true);

// Make status bar visibleLCDUIUtil.setObjectTrait(this,

"nokia.ui.canvas.status_zone" ,Boolean.TRUE);

}}

Example: PaintApp

Page 59: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 59/174

Category Bar› Use only to change views,

not to perform actions

› Actions can be icons, but donot belong in a “CategoryBar”

› Works on Form and Canvas

Page 60: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 60/174

CategoryBar» Typical use: view switching

 –  One element always highlighted

 –  Mandatory & automatic back button

» CategoryBar.getMaxElements() (excluding back)

 –  Currently: 15 icons (+ back)

 –  Portrait: 4 visible, landscape: 6 visible

 –  Excess (> 15) icons not shown

» CategoryBar.getBestImageWidth / Height()

 –  Currently: 44 x 44

 –  Note: size is edge-to-edge. Make actual icon smaller! (e.g., 20 x 20)

44 x 44 icon

20 x 20 icon

Page 61: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 61/174

CategoryBar» Back

 –  Traditional back Command in Form

 –  Visible w/o CategoryBar

 –  CommandListener

 –  CategoryBar

 –  Back included by default

 –  ElementListener.BACK

→ always visible if using CategoryBar: no back cmd needed

Back command,

CategoryBar visible

Page 62: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 62/174

IconCommand» Extends LCDUI Command class

 –   Adds: Icon

 –  Built-in system icon

 –  Own icon (unselected, [selected])

» Icons visible

 –   Action button 1

 –  Category bar 

 –  Back button always has default icon, not possible to override!

 Action

button 1

Category bar 

Page 63: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 63/174

Using: IconCommandpublic class JavaFTMidlet extends MIDlet implements CommandListener {

private Form frmMain;private IconCommand cmdOk;

public JavaFTMidlet() {frmMain = new Form("Main");

cmdOk = new IconCommand("Ok", Command.OK, 1, IconCommand.ICON_OK);frmMain.addCommand(cmdOk);

}

public void startApp() {frmMain.setCommandListener(this);Display.getDisplay(this).setCurrent(frmMain);

}

public void commandAction(Command c, Displayable d) {if (c == cmdOk) { /* Ok Command */ }

}}

Command mapped

to action button 1

Very few predefined

icons are available

Example: JavaTouch

Page 64: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 64/174

Using: CategoryBarpublic class JavaFTMidlet extends MIDlet implements CommandListener, ElementListener {private IconCommand cmdHome;private IconCommand cmdInfo;

public JavaFTMidlet() {try { // Load icon images

Image imgHome = Image.createImage("/home.png");cmdHome = new IconCommand("Home", imgHome, imgHome, Command.SCREEN, 3); //cmdHome = new IconCommand(“Home", “Home", Command.SCREEN, 3, IconCommand.ICON_SEND_SMS);

Image imgInfo = Image.createImage("/info.png");

cmdInfo = new IconCommand("Info", imgInfo, imgInfo, Command.SCREEN, 3); //cmdInfo = new IconCommand(“Info", “Info", Command.SCREEN, 3, IconCommand.ICON_OPTIONS);

} catch (IOException ex) { }

IconCommand[] iconCommands = {cmdHome, cmdInfo}; // Put commands into arrayCategoryBar categoryBar = new CategoryBar(iconCommands, true);categoryBar.setVisibility(true); // Make visible (default: invisible)categoryBar.setElementListener( this); // For notifyElementSelected() callback

}

public void notifyElementSelected(CategoryBar cb, int i) {Alert alert = new Alert("Element");if (i == ElementListener.BACK) { // Default back element from category bar

alert.setString("Back element"); // i == -1} else {

alert.setString("Element: " + i); // Element ID: 0, 1, 2, ... starting left}display.setCurrent(alert);

}

Element 0 selected

by default

Using same icon for

highlighted state

ElementListener for

CategoryBar 

Example: JavaTouch

Page 65: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 65/174

Demo- Standard CategoryBar- Custom CategoryBar

Page 66: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 66/174

PopupListPopupList list1 = new PopupList();PopupList list2 = new PopupList();list2.setItemText("Sublist");

PopupListItem item1 = new PopupListItem("Text");PopupListItem item2 = new PopupListItem("Text", image1);

PopupListItem item3 = new PopupListItem("Text2");PopupListItem item4 = new PopupListItem("Text3", image1);

list1.appendItem(item1);list1.appendItem(item2);list1.appendItem(list2);list2.appendItem(item3);list2.appendItem(item4);

list1.setVisible(true);

Example: Menu

Page 67: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 67/174

Method Summary

voidappendItem(PopupListItemitem)

This method will append an item to the list.

PopupListItemgetItem(int index)

Returns the item specified by the index from the popuplist.

voidinsertItem(PopupListItemitem, int index)

This method will insert an item to the list at the give index.

voidremoveItem(PopupListItem item)

This will remove the item from the popuplist.

void removeItemAt(intindex)This will remove the item specified by the index from the popuplist.

voidsetItemText(java.lang.String text)

Deprecated.will be removed soon, use the setText instead of 

voidsetListener(PopupListListenerlistener)

This method sets the PopupListListener for this list.

voidsetListYPos(intyPos)

Sets the y coordinate where the contextual menu should be shown.

voidsetTailStyle(intstyle)

This sets the tail style for the contextual menu.

voidsetText(java.lang.Stringtext)

This method sets the PopupList item text.

voidsetVisible(boolean visible)

This sets the list visible or hidden.

intsize()

This will return the size of the popuplist.

Page 68: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 68/174

Demo- PopupList

Page 69: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 69/174

Orientation

› You can

› Get and set screen orientationwith the Orientation class

› Alternate: system property toget orientation

› Receive changes as registeredOrientationListener

› Use a JAD parameter to lock toeither portrait or landscape

Page 70: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 70/174

com.nokia.mid.ui.orientation.Orientation

Page 71: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 71/174

Interface com.nokia.mid.ui.orientation.OrientationListener

› Use in your Canvas, GameCanvas orCustomItem

› Change object height, width or layout for pleasing effects

Page 72: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 72/174

Orientation» By default, your app is locked portrait only

» To enable landscape/portrait orientation changes

1.  Add attribute:

Nokia-MIDlet-App-Orientation: manual

2. Register yourself as an OrientationListener

public class JavaFTMidlet extends MIDlet implements OrientationListener {public void startApp() {

Orientation.addOrientationListener( this);}

Page 73: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 73/174

Orientation

Example: JavaTouch

portraitlandscape

or

manual

Page 74: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 74/174

Orientation –  Adapt content orientation to phone / display

 –  setAppOrientation() calls sizeChanged() on the current Displayable

 –  This allows you to intercept the changes before they occur and filter or customize

public void displayOrientationChanged(int newDisplayOrientation) {switch (newDisplayOrientation) {

case Orientation.ORIENTATION_PORTRAIT:

case Orientation.ORIENTATION_PORTRAIT_180:Orientation.setAppOrientation(Orientation.ORIENTATION_PORTRAIT);break;

case Orientation.ORIENTATION_LANDSCAPE:case Orientation.ORIENTATION_LANDSCAPE_180:

Orientation.setAppOrientation(Orientation.ORIENTATION_LANDSCAPE);break;

}}

Example: JavaTouch

Page 75: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 75/174

Demo- Orientation on Form- Orientation on Canvas

Page 76: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 76/174

ProceduralGraphics

› Translucent drawing

› Any size text fonts› New font: Light

Page 77: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 77/174

Nokia ScalableFonts

Font font =DirectUtils.getFont(face,style, customHeight);

› On some less expensivephones, this will failgracefully to a standard Fontsize

› Very handy for making

subtly styled user interfaces

Page 78: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 78/174

”Light” Font

› Use DirectUtils.getFont() with

DirectUtils.STYLE_LIGHT

› You may also add anycombiation of

› Font.STYLE_BOLD

› Font.STYLE_ITALIC

› Font.STYLE_UNDERLINE

› This may also degradegracefully to a different font

depending on the phone

Page 79: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 79/174

Demo- Scalable Font- Alpha blending

Page 80: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 80/174

Input: Text andTouch Input

Page 81: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 81/174

TextEditor

Virtual Keyboard, Physical KeyboardMulti-touch

Gestures

Page 82: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 82/174

TextEditor › Custom Nokia class› Text input on top of Canvas

› Define exactly where on thescreen, all colors and

translucency› Precise control, no chrome.

Adapt it to your application’slook and feel.

› TextEditorListener allows youto monitor user changes live

Page 83: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 83/174

TextEditorproperties

› View properties

› Position

› Size

› Visibility

› Focus state

› Color properties

› Background color with alpha channel

› Background highlight color with alphachannel

› Foreground color with alpha channel

› Foreground highlight color with alphachannel

Page 84: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 84/174

Using: Text Editor» Show & hide text editor in the Canvasprotected void pointerPressed(int x, int y) {

if (x >= textBoxX && x < textBoxX + textBoxWidth && y >= textBoxY && y < textBoxY + textBoxHeight) {// Click in the box, show the text editor: no input constraints, 20 chars max lengthtextEditor = TextEditor.createTextEditor(text, 20, TextField.ANY, textBoxWidth, textBoxHeight);

textEditor.setForegroundColor(0xFFFFFFFF); // Text color: whitetextEditor.setBackgroundColor(0x800092c2); // Transparent blue background (Alpha = 0x80)textEditor.setParent(this); // Canvas to draw ontextEditor.setPosition(textBoxX, textBoxY); // x/y coordinatestextEditor.setVisible(true); // By default invisibletextEditor.setFocus(true); // Deliver keys to textEditor, not to CanvastextEditor.setCaret(text.length()); // Caret at end of text

} else if (textEditor != null) {// Click outside of the box, defocus the text editortext = textEditor.getContent(); // Copy text contents

textEditor.setParent(null);textEditor = null;}repaint();

}

Example: CanvasTextEditor 

Page 85: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 85/174

Using: Text Editor» Draw text when TextEditor not active / visibleprotected void paint(Graphics g) {

if (textEditor == null) {g.setColor(0xFFFFFF);g.drawRect(textBoxX - 2, textBoxY - 2, textBoxWidth, textBoxHeight);

g.drawString(text, textBoxX, textBoxY, Graphics.TOP | Graphics.LEFT);}

}

Example: CanvasTextEditor 

Page 86: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 86/174

Demo- TextEditor

Page 87: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 87/174

Virtual Keyboard» Use on-screen keyboard on Canvas

 –  Creates keyPressed() callbacks

 –  Get VKB height to avoid content overlap

VKB_MODE_ALPHA_LOWER_

CASE

VKB_MODE_DEFAULT

Page 88: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 88/174

Using: Virtual Keyboard» Show keyboard

» Hide keyboar 

CustomKeyboardControl vkbControl = VirtualKeyboard.getCustomKeyboardControl();vkbControl.launch(VirtualKeyboard.VKB_TYPE_ITUT, VirtualKeyboard.VKB_MODE_ALPHA_LOWER_CASE);

vkbControl.dismiss();

Example: PaintApp

Page 89: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 89/174

Using: Virtual Keyboardpublic class MainCanvas extends Canvas implements KeyboardVisibilityListener{

private int screenHeight;private int visibleHeight;

public MainCanvas() {setFullScreenMode(true);

screenHeight = getHeight(); // Original screen height == 400visibleHeight = screenHeight; // No VKB visible -> == 400VirtualKeyboard.setVisibilityListener(this);

}public void showNotify(int keyboardCategory) {

// VKB now visible -> visibleHeight == 200visibleHeight = screenHeight - VirtualKeyboard.getHeight();

}public void hideNotify(int keyboardCategory) {

// VKB now hidden -> visibleHeight == 400

visibleHeight = screenHeight;}

}

visibleHeight == 200

visibleHeight == 400

Example: PaintApp

Page 90: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 90/174

Demo- Virtual Keyboard

Page 91: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 91/174

Multipoint Touch» Single touch

 –  Canvas.pointerPressed() part of MIDP

 –  Only tracks 1st touch point

» Multipoint Touch

 –  Tracks multiple touch points

 –  But use simpler gesture APIs when possible

 –  Each associated with unique ID, x, y and state

 –  Call-back for touch changes, but status available any time

 –  Use in: Canvas-/CustomItem-based classes

Page 92: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 92/174

Using: Multipoint Touch» Number of touch points

 –  Limited accuracy of simultaneous touch points on a resistive screen → no

on-screen joystick & shoot button possible!

» Register: touch point listener 

MultipointTouch mpt = MultipointTouch.getInstance();int numTouchPoints = MultipointTouch.getMaxPointers();

== 2 on the emulator

and first phone

public class MainCanvas extends Canvas implements MultipointTouchListener{

public MainCanvas() {// ...mpt.addMultipointTouchListener(this);

}

Example: PaintApp

Page 93: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 93/174

Using: Multipoint Touch» Handling touch eventspublic void pointersChanged(int[] pointerIds) {

for(int i=0; i<pointerIds.length; i++) { // Loop through the changed touch points{

int pointerId = pointerIds[i]; // Get the touch point ID

int state = MultipointTouch.getState(pointerId); // Get the touch point state// Get the touch point x and y coordinatesint x = MultipointTouch.getX(pointerId);int y = MultipointTouch.getY(pointerId);

// Handle the UI update based on the touch point state, ID and coordinatesswitch(state) {

case MultipointTouch.POINTER_PRESSED: // A new finger was pressed against the screendrawTouch(pointerId, x, y); break;

case MultipointTouch.POINTER_DRAGGED: // A pressed finger was dragged over the screen

drawTouch(pointerId, x, y); break;case MultipointTouch.POINTER_RELEASED: // A pressed finger was lifted from the screen

break;} } }

Example: PaintApp

Page 94: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 94/174

Single Touch

› Sytem.getProperty(”com.nokia.pointer.number “)== “1”;

Page 95: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 95/174

Non-Touch

› Canvas.hasPointerEvents()== false

› UX: You must highlight thecurrently selected item. Ontouch, you only highlight thecurrent item to providevisual feedback until the endof the pointer event.

Page 96: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 96/174

Demo- Multitouch (Emulator & Device)

Page 97: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 97/174

Gestures

Page 98: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 98/174

Gesture API

Detect additional touchand motion events

5/1/2013 98

Page 99: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 99/174

Touch Gestures Single Tap

Long Press

Long Press Repeated

Drag

DropFlick

Page 100: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 100/174

GestureComponents

Page 101: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 101/174

Gestures – step 1» Create a GestureInteractiveZone

/ / Cr eat e a Gest ur eI nt er act i veZone f or al l Gest ur e Types

Gest ureI nt er act i veZone gi z = new Gest ureI nt er act i veZone(Gest ureI nt er act i veZone. GESTURE_ALL ) ;

/ / set boundi ng r ect angl e of zone.

gi z. set Rectangl e( x, y, wi dt h, hei ght ) ;

Page 102: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 102/174

Gestures – step 2/ / Def i ne a Gest ur eLi st ener

Cl ass Gest ur eCanvas extends Canvas implements GestureListener {

prot ected voi d pai nt ( Graphi cs g) { …}

 public void gestureAction( Obj ect cont ai ner ,

Gest ur eI nt eract i veZone zone, Gest ur eEvent event ) {

. . .

}

}

Page 103: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 103/174

Gestures – step 3» Register the GestureInteractiveZone with the GestureRegistrationManager 

/ / Regi st er f or Gest ur e event s.

Canvas canvas = new Gest ur eCanvas( ) ;

Gest ureRegi st r at i onManager . r egi st er ( canvas, gi z ) ;

Gest ureRegi st at i onManager . set Li st ener ( canvas, canvas ) ;

Page 104: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 104/174

Handling gestureAction() public void gestureAction( Obj ect contai ner ,

Gest ur eI nt eract i veZone zone, Gest ureEvent event ) {

swi t ch( event . get Type( ) ) {

case Gest ureI nt er acti veZone.GESTURE_TAP:

case Gest ureI nt er acti veZone.GESTURE_LONG_PRESS:

case Gest ureI nt er acti veZone.GESTURE_LONG_PRESS_REPEATED:

case Gest ureI nt er acti veZone.GESTURE_DRAG:

case Gest ureI nt er acti veZone.GESTURE_DROP:

case Gest ureI nt er acti veZone.GESTURE_FLICK:

}

}

Page 105: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 105/174

Using: Gestures» Register as gesture listener 

 –  Zone: reacts to 1+ specified gestures

 –  Whole screen or rectangular area

 –  Overlap possible

 –  Received events → GestureListener

public class MainCanvas extends Canvas implements GestureListener {private int curPinchDistance = -1;public MainCanvas() {

// Set this as container (gesture source) and listener

GestureRegistrationManager.setListener( this, this);// Register for pinch events in the whole canvas areagestureZone = new GestureInteractiveZone(GestureInteractiveZone. GESTURE_PINCH);GestureRegistrationManager.register( this, gestureZone);

}

Example: PaintApp

Page 106: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 106/174

Using: Gestures» Handling gestures

 –  gestureAction() executed in UI thread

 –  Lengthy operations (scaling image, etc.) → own thread!

public void gestureAction(Object container, GestureInteractiveZone gestureInteractiveZone, GestureEvent gestureEvent) {int eventType = gestureEvent.getType();switch (eventType) {

case GestureInteractiveZone.GESTURE_PINCH: // Pinch detectedcurPinchDistance = gestureEvent.getPinchDistanceCurrent(); break;

case GestureInteractiveZone.GESTURE_RECOGNITION_START: /* ... */ break;case GestureInteractiveZone.GESTURE_RECOGNITION_END: /* ... */ break;

}}

Example: PaintApp

Page 107: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 107/174

Demo- Gesture

Page 108: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 108/174

Motion Inputand Interaction

Page 109: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 109/174

Sensors, Accelerometers

Location, Maps

Page 110: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 110/174

Sensors

» JSR 256 Sensor API

› Generic: designed also for temperature, blood pressure,etc.

› Also available on Symbian

» Currently supported

› Battery Charge: 0 .. 100, charge percentage› Network Field Intensity: 0 .. 100, signal strength

› Charger State: 0 .. 1, charger connected

› Acceleration: –2g .. +2g, x / y / z axis

› Double Tap: 1 .. 63, phone sides

› Orientation: 0 .. 6, phone orientation

Page 111: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 111/174

Double Tap Sensor

http://www.developer.nokia.com/Resources/Library/Java/_zip/GUID-F031C633-5F4E-441E-A863-CE4E28A9CD55/appendixE.html

Page 112: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 112/174

Finding SensorsApplication SensorManager SensorInfo Connector

findSensors(quantity,

contextType)

return SensorInfo[]

getUrl()

return URL

Connector.open(URL)

return SensorConnection

Page 113: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 113/174

Sensor Values» Modes

 –  Synchronous

 –  Poll sensor 

 –  Example: accelerometer in game loop

 –   Asynchronous

 –  DataListener callbacks

 –  Example: phone charger plugged in

Page 114: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 114/174

Using: Sensors» Establish sensor connection

» Check data in game loop

// Find all acceleration sensors, the contextType is left undefinedSensorInfo[] sensorInfos = SensorManager.findSensors("acceleration", null);// Find an acceleration sensor that returns double valuesfor (int i = 0; i < sensorInfos.length; i++) {

if (sensorInfos[i].getChannelInfos()[0].getDataType() == ChannelInfo.TYPE_DOUBLE) {accSensor = (SensorConnection) Connector.open(sensorInfos[i].getUrl());

}}

// Use 1 as a buffer size to get exactly 1 value for each axisData[] data = accSensor.getData(1);speedX = -data[0].getDoubleValues()[0]; // data[0] => x-axis

speedY = data[1].getDoubleValues()[0]; // data[1] => y-axis

Example: MovingBall

Page 115: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 115/174

Accelerometers

Page 116: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 116/174

Page 117: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 117/174

Demo- Car Race- Double Tap Soccer (Device)

Page 118: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 118/174

Location

› Traditional ”location” APIsuse GPS

› Network-based location isfaster to give a result, but

the result is less precise› There are several variants

available. The phone will pickthe most precise among theoptions you consideracceptable.

Page 119: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 119/174

LocationUtil» The com.nokia.mid.location.LocationUtil class provides an extra mechanism for creatinga LocationProvider

» This is an extension to the JSR-179 Location API, which provides the LocationProvider class

class LocationUtils {

static LocationProvider LocationUtil.getLocationProvider(int[] preferedMethods,String parameters );

}

» The parameters is for additional platform parameters, for now use null

Page 120: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 120/174

LocationUtil» The preferedMethods can be a combination of the followingdefinitions of the JSR-179 Location class:

MTA_ASSISTED

MTA_UNASSISTED

MTE_CELLID

MTE_SATELLTITE

MTE_SHORTRANGE

MTY_NETWORKBASED

MTY_TERMINALBASED

Page 121: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 121/174

Cell-ID Based Location» A MIDlet can obtain approximate location by using the Cell-ID basedmethod

» This method will send to a network based server the cell-id that thephone is connected to. This server will return the known location ofthat cell-id

» This enabled phones without built in GPS to obtain an approximateLocation without requiring a separate Bluetooth GPS device

» Note using Cell-ID based location, the coordinates can vary from a fewmeters to hundreds of kilometers, depending on the local network

deployment and on how much information the backend database hasbeen able to collect for that area

Page 122: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 122/174

Cell-ID Example Code» Example code:

int[] methods = {(Location.MTA_ASSISTED |

Location.MTE_CELLID |

Location.MTY_NETWORKBASED)};

LocationProvider lp = LocationUtil.getLocationProvider(methods,null);

Location loc = lp.getLocation(-1);

Coordinates coords = loc.getQualifiedCoordinates();

double lat = coords.getLatitude();

double lng = coords.getLongitude();

Page 123: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 123/174

Maps

Page 124: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 124/174

Maps API for Java ME

Now in Nokia Java SDK 2.0

(previously separate plug-in package)http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/

Page 125: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 125/174

Supported Features

» Maps

» Search

» (Reverse) Geocoding

» Routing

» Sharing: convert to URL

» Note: now always requires AppID and Token

Page 126: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 126/174

Map ViewFeatures» Multiple map types – conventional street

map, satellite and terrain» Touch support – use touch to pan and zoom

the map

» Customizable markers – set color, labels andimages

» Polygons, polylines – set colors andtransparency levels

» Overlay support – set color/labels or usecustom images

» Download indicator – provided as a standard

UI component

Page 127: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 127/174

Using: Maps

public class MapMidlet extends MIDlet {public void startApp() {

// Set registered application ID and tokenApplicationContext.getInstance().setAppID("xxx");

ApplicationContext.getInstance().setToken("xxx");

// Create new Nokia Maps canvasDisplay display = Display.getDisplay(this);MapCanvas mapCanvas = new MapCanvas(display);

// Show map on the screendisplay.setCurrent(mapCanvas);

}}

// Geocode an addressSearchManager searchManager = SearchManager.getInstance();searchManager.geocode("Vienna, Austria", null);

Location[] locations = searchManager.getLocations();

// Center map on the latitude and longitudemapCanvas.getMapDisplay().setCenter(locations[0].getDisplayPosition());mapCanvas.getMapDisplay().setZoomLevel(11, 0, 0);

Example: mapExample

Page 128: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 128/174

2G Network Location

Vs3G Network Location

Page 129: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 129/174

Page 130: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 130/174

Maps Package Overview» The API is divided into four packages.

Package Description

com.nokia.maps.common Common classes needed by other packages including Address,

ApplicationContext, GeoBoundingBox and GeoCoordinate.

com.nokia.maps.map Map package contains classes needed to show and interact with mapcontent and place objects on map.

com.nokia.maps.routing Routing package contains classes to calculate route and access route data.

PositioningManager provides an easy to get current location information

based on GPS device or device cell information.

com.nokia.maps.search Search package contains SearchManager for geocoding and reverse

geocoding.

Page 131: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 131/174

The Minimal LBSP App» Displaying interactive map to the user is simple as creating

MapCanvas instance and setting it as a current displayable:

import com. noki a. maps. map. MapCanvas;

/**

* Mi ni mal MI DP appl i cat i on t o show map cont ent t o t he user .*/ public class MapMI Dl et extends MI Dl et {

/*** Thi s met hod i s cal l ed when t he appl i cat i on i s st ar t ed and sets* MapCanvas as a curr ent Di spl ayabl e.*/

 protected void st ar t App( ) throws MI Dl etSt at eChangeExcept i on {Di spl ay di spl ay = Di spl ay. get Di spl ay( t hi s) ;

MapCanvas mapCanvas = new MapCanvas( di spl ay ) ;di spl ay. setCur rent ( mapCanvas) ;}

}

Page 132: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 132/174

Map

Page 133: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 133/174

Map Markers» A Marker can be added to a map with the following code:

double l at = 51. 3;double l ng = 0. 8;

i nt si ze = 10;St r i ng s = “You are here!”;

GeoCoordi nat e coor d = new GeoCoor di nat e( l at , l ng, 0 ) ;MapFact ory mapFact ory = mapCanvas. get MapFact ory( ) ;MapSt andar dMar ker mar ker =

mapFact ory. creat eSt andar dMarker ( coor d, si ze, s) ;mapCanvas. getMapDi spl ay( ) . addMapObj ect ( mar ker ) ;

Page 134: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 134/174

Map Marker

Page 135: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 135/174

Search Manager» Places can be searched for with the SearchManager

» You can also look up locations near a specified GeoCoordinate

/ / Get i nst ance of Sear chManagerSearchManager searchManager = Sear chManager. get I nst ance( ) ;sear chManager . set Li st ener ( t hi s) ;

/ / Look up l ocat i ons based on a sear ch st r i ngsearchManager . geocode( “Ger many, Ber l i n" , null ) ;

/ / Or , get l ocat i ons at speci f i ed GeoCoor di nat eGeoCoor di nat e coord = new GeoCoordi nat e( 51. 3, 0. 8, 0 ) ;sear chManager. r ever seGeocode( coor d ) ;

Page 136: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 136/174

Search Listener» The SearchListener allows a MIDlet to get notification when a search

request is completed

 public class MySear chLi st ener implements Sear chLi st ener {

 public void sear chRequest Er ror ( Sear chManager sour ce, Thr owabl e er r or ){

/ / Handl e sear ch er r or}

 public void sear chRequest Fi ni shed( Sear chManager source) {/ / Can now get t he search r esul t sLocat i on[ ] l ocat i ons = sour ce. get Locat i ons( ) ;

}

 public void sear chResponseCl ear ed( Sear chManager source) {}

}

Page 137: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 137/174

Routing» RouteManager provides access to Nokia routing service

» Calculating route requires at least two waypoints and wanted modes

» Modes are used to control route calculation features

/ / Creat e the waypoi nt s

GeoCoordi nat e start = new GeoCoordi nat e( 51. 3, 0. 8, 0) ;GeoCoordi nate end = new GeoCoordi nat e( 55. 0, 0. 0, 0) ;Waypoi nt Paramet er Li st waypoi nt s = new Waypoi nt ParameterLi st ( ) ;waypoi nt s. addCoor di nat e( st ar t ) ;waypoi nt s. addCoor di nate( end) ;

Rout eManager rm= Rout eManager . get I nst ance( ) ;

rm. set Li stener( t hi s) ;/ / Use def aul t rout i ng modeRout i ngMode[] modes = { new Rout i ngMode() };rm. cal cul ateRout e(waypoi nt s, modes ) ;

Page 138: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 138/174

Routing Types» The Routing Type must be one of the types defined in

RoutingType

» These are static intsRoutingType.DIRECT_DRIVE

RoutingType.ECONOMICRoutingType.FASTEST

RoutingType.FASTEST_NOW

RoutingType.SCENIC

RoutingType.SHORTEST

Page 139: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 139/174

Transport Modes» The following transport Modes are available

TransportMode.BICYCLE

TransportMode.CAR

TransportMode.PEDESTRIAN

TransportMode.PUBLICTRANSPORTTransportMode.TRUCK

Page 140: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 140/174

Routing Options» These are string constants defines in RoutingOptions

NOTE: HOVLANE = High occupancy vehicle lane

RoutingOptions.AVOID_BOATFERRY

RoutingOptions.AVOID_DIRTROAD

RoutingOptions.AVOID_MOTORWAY

RoutingOptions.AVOID_PARK

RoutingOptions.AVOID_PUBLICTRANSPORT

RoutingOptions.AVOID_RAILFERRY

RoutingOptions.AVOID_STAIRS

RoutingOptions.AVOID_TOLLROAD

RoutingOptions.AVOID_TUNNEL

RoutingOptions.PREFER_HOVLANE

Page 141: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 141/174

Com an Conf idential

In-app Purchase

Page 142: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 142/174

Com an Conf idential

In-app PurchaseThe boss is too hard? Purchase more skills to defeat it!

Page 143: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 143/174

Com an Conf idential

What is In-app Purchase (IAP)In-app purchase (IAP) allows

you to integrate a Nokia Store

purchasing feature into your

S40 Java application in a

simple and seamless manner.End users (consumers)

can purchase

additional digitalcontent or services

directly from your

application, without

having to leave the

application.

Page 144: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 144/174

Com an Conf idential

With in-app purchase, you can• Sell add-ons, levels, and

virtual goods to enhance the

engagement and lengthen the

lifetime of your applications

• Convert free applications to paid ones byembedding try-and-buy offers within the applications

• Offer seamless consumer-friendly credit card

and operator payment flows to optimize the

purchase funnel

Page 145: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 145/174

Com an Conf idential

With in-app purchase, you can

• Enjoy rich revenue sharing with the same

price points and earnings split as forNokia Store content

• Implement purchases through a fewsimple API calls, without having to worryabout payment processing

• Leverage Nokia's numerous operator billingintegrations and country presences to extend yourreach and promote your brand

Operator Billing

NOW live in

Vietnam!

Page 146: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 146/174

Com an Conf idential

What you can sell• Premium levels for games

• Virtual goods, such asadditional tools or currencyfor a game

• Downloadable components,such as city guides for a

location-based application

Content

• One-time subscriptions forvarious periods, such as aone-month, three-month, orone-year subscription to amobile newspaper 

• Donations

Services

Page 147: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 147/174

Com an Conf idential

What you can NOT sell

Tickets to real-world events

Physical goods, such as pizza

Physical merchandise in online auctions

Purchases that Nokia's Quality Assurance (QA) team cannot verify at the time ofsubmission, such as loyalty points or prepayments for future releases

Content that does not adhere to Nokia Publish

Device compatibility

Page 148: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 148/174

Com an Conf idential

Device compatibilityJava Runtime 1.1.0 Java Runtime 2.0.0

H h d it d li d

Page 149: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 149/174

Com an Conf idential

How are purchased items delivered

• Bundled in the app downloaded from Nokia

Store to a device• On a publisher back end server 

Nokia Store handles the payment processing

H d t t t

Page 150: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 150/174

Com an Conf idential

How do you restore content

How the content is restored depends on the content type

When end users buy new devices,they lose ownership or access to

content they purchased through in-app purchase

Your application must provide a wayfor end users to restore their

ownership or access

Built–in content

Nokia Store handlesthe restoration

Content deliveredfrom a back-end

server

You handle therestoration

Payment flow

Page 151: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 151/174

Com an Conf idential

Payment flowYour application:

• Sends a request to Nokia Store for the purchasable contents' prices and descriptions

• Displays the available purchases within the application

• Prompts users to purchase content

• Prompts the user to confirm the content purchase and payment method, either credit card or operator billing

• Displays any required error messages, disclaimers, and notifications

• Displays a notification of a successful payment

P h i ith DRM t t d t t

Page 152: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 152/174

Com an Conf idential

Purchasing process with DRM protected content

1. To be able to display the purchasable items to the end user, theapplication must know the IDs of the products that are available forpurchase. You use Nokia Publish to identify in-app purchaseitems and get IDs for them.

2. Nokia Store returns the product metadata (name, price, anddescription) that matches the given product IDs.

3. The application displays the items to the end user, using themetadata received.

4. The end user selects which item they want to purchase, and

presses a Buy button.

5. The application triggers a payment process using the in-apppurchase API.

6. Nokia Store processes the payment, and completes thetransaction. The process includes prompting the user for theirNokia account password, if the user is not yet signed in, andprompting for the confirmations needed.

Note: If Nokia Store notices after the sign-in that the end user actually has aright to restore this item without any cost, it switches f rom a purchaseprocess to a restoration process.

7. Nokia Store delivers the DRM key to unlock the protected contenton the device.

R t ti ith DRM t t d t t

Page 153: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 153/174

Com an Conf idential

Restoration process with DRM protected content

You can design therestoration process for yourapplication in a number of

different ways

Provide a menuoption to the user to

check for anyrestorable items in

Nokia Store

Display a Restoreoption. User canattempt a restorationwhich may fail if theuser is not entitled to

restoring it

 Auto-switch from apurchase process toa restoration process

• Nokia Store makes sure that

the end user does not pay for

a DRM protected item if they

are entitled to restore it free

of charge

• This is verified based on the

user’s account and device

• If the item is eligible for

restoration, Nokia Store

switches from a purchase

process to a restoration

process

Nokia Store sign in

Page 154: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 154/174

Com an Conf idential

Nokia Store sign-in• To purchase content or restore, the end user must sign in to Nokia Store

• During the time that the sign-in is valid, the end user can purchase or restore without having to sign in again

• Nokia Store may prompt for username and password if 

User sign in to Nokia Store for the first time on their device

The end user has not allowed the device to store this data

In a restoration scenario

• If the end user is signed in

The application tries to silently check if any restorable products are available and display restoration options

Silently restore them without requiring any action from the user 

• If the end user is not signed in, they will not automatically be bothered with a password prompt unless they specifically select a UI option to find

out

Steps to implement in app purchase

Page 155: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 155/174

Com an Conf idential

Steps to implement in-app purchase

Choose a methodfor contentprotection

 Add informationabout the in-app

purchase items toNokia Publish

Create the in-apppurchase resourcefiles used by the

application

Implement the in-app purchase

feature

Verify thepurchase (ifapplicable)

Handle DRM-protected content

(if applicable)

Provide end usersupport

Test the in-apppurchase feature

Submit theapplication toNokia Publish

• Nokia Publish tests the application and applies DRM protection if

requested, and, if the application passes QA, publishes the

application to Nokia Store.

• Using OMA DRM 2.0 to encrypt resource files that are not in-app

purchases is not currently supported in Java

IAP Project Structure

Page 156: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 156/174

Com an Conf idential

IAP Project Structure• IAP_VARIANTID.TXT

Create in the root of the application project's resource folder 

Open the file in a text editor, enter "000000" and save the

file

Used by Nokia Publish to store the application's unique

identifier before the application is published to Nokia Store

• TEST_MODE.TXT

Required for testing the application on Nokia Publish server  Bypass money transactions

Nokia Store automatically removes this file before

publishing

IAP Project Structure

Page 157: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 157/174

Com an Conf idential

IAP Project Structure• DRM protected resources

Store the resource files for each purchase item in

<project_root>\<resource_folder>\drm\data\resourceid_x

x is the unique ID of the corresponding purchase item (Product ID)

• Where to get Product ID?Register on Nokia Publish

•  Access to protected resource fi les:

getDRMResourceAsStream

• Normal resources (non-DRM protected)

Other folders in the project except

<project_root>\<resource_folder>\drm

•  Access to unprotected resource fi les :

  getDRMResourceAsStream

  getResourceAsStream

IAP classes

Page 158: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 158/174

Com an Conf idential

IAP classes

Interface Summary

IAPClientPaymentListener  The IAPClientPaymentListener represents a listener that receives events associated with the IAPClientPaymentProvider.

Class Summary

DrmResourceInputStream

IAPClientPaymentManager  This is the main class for initiating and managing the purchase process for the purchaseable items in an application.

IAPClientProductData Class for holding purchaseable or restorable product specific data.

IAPClientUserAndDeviceData Class for holding User and Device Data related information.

Exception Summary

IAPClientPaymentException The IAPClientPaymentException is thrown when any unexpected system error occurs.

Package com.nokia.mid.payment

IAP callback functions

Page 159: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 159/174

Com an Conf idential

IAP callback functions

Interface IAPClientPaymentListener Method Summary

void productDataListReceived(int status, IAPClientProductData[] productDataList)

This callback function is executed when the request for a list of product data to the Nokia Store back end is complete.

void productDataReceived(intstatus, IAPClientProductData pd)

This callback function is executed when the product data request for the Nokia Store back end is complete.

void purchaseCompleted(int status, java.lang.String purchaseTicket)This callback function is executed when the IAPClient gets information from the Nokia Store back end indicating that the purchase has been completed.

void restorableProductsReceived(intstatus, IAPClientProductData[] productDataList)

This callback function is executed when the request for products available for restoration is complete.

void restorationCompleted(int status, java.lang.String purchaseTicket)

This callback function is executed when the IAPClientPaymentProvider gets information from the Nokia Store back end indicating that the item's restoration is possible.

void userAndDeviceDataReceived (intstatus, IAPClientUserAndDeviceData ud)

This callback function is executed when the user and device data request is completed.

Basic IAP Code Flow

Page 160: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 160/174

Com an Conf idential

Basic IAP Code Flow

1. import com.nokia.mid.payment.*;

2. public class IAP implements IAPClientPaymentListener 

3. IAPClientPaymentManager pManager = IAPClientPaymentManager.getIAPClientPaymentManager();

4. pManager.setIAPClientPaymentListener(this);

5. pManager.getProductData(“123456”);

6. public void productDataReceived(int status, IAPClientProductData productData)

7. pManager.purchaseProduct(“123456”, IAPClientPaymentManager.FORCED_AUTOMATIC_RESTORATION);

8. InputStream is = pManager.getDRMResourceAsStream("/drm/data/ResourceId_123456/extra_levels.dat”);

Config emulator

Page 161: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 161/174

Com an Conf idential

Config emulator 

Diagnostics window

Display debug logs

Display http requests/responses

Application Details

Page 162: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 162/174

Com an Conf idential

 Application DetailsChoose Tools > IAP Simulation

• Click Create button to create a

new IAP application

• Click Browse button to declare

path to the project folder, which

you want to integrate IAP. It will

automatically add res folder to

your project:

• IAP_VARIANTID.TXT

• TEST_MODE.TXT

• drm subfolder 

Publishing IAP application on Nokia Store

Page 163: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 163/174

Com an Conf idential

Publishing IAP application on Nokia Store

• Select New Content Item• Choose Java application

Publishing IAP application on Nokia Store

Page 164: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 164/174

Com an Conf idential

Publishing IAP application on Nokia Store

• Select appropriate options• Click Continue

Publishing IAP application on Nokia Store

Page 165: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 165/174

Com an Conf idential

Publishing IAP application on Nokia Store

• Enter Content item name, which

appears on Nokia Publish site

• Check In-app purchase items checkbox

• Enter Display Name, which appears on

Nokia Store

• Enter Description, which describes the

application on Nokia Store

• Choose suitable Category

• Check all suitable Categorization Tags

• Enter Keywords which are used when

consumers search for applications on

Nokia Store

Publishing IAP application on Nokia Store

Page 166: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 166/174

Com an Conf idential

Publishing IAP application on Nokia Store

• Select Global price point:

• Can be Free, 1/2/3 EUR (to

leverage on Operator Billing)

• You should choose Free if your

application is T&B

• Enter Support website, where users can

look for help, instructions, tutorials,

useful hints about your application:

• Must not contain any link to

external websites

• Must not advertise about

competitors apps and platforms

• Upload application Icon and Primary

screen shot

• Click Create button

Publishing IAP application on Nokia Store

Page 167: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 167/174

Com an Conf idential

Publishing IAP application on Nokia Store

• Select In-app purchases tab

• Enter  In-app purchase name to use in

Nokia Publish site

• Enter IAP item metadata, which you

want to show to consumers:

• Display name

• Short Description

• Long Description

• Set Global price point. It can be 1/2/3

EUR (to leverage on Operator Billing)

• Click Create button

Publishing IAP application on Nokia Store

Page 168: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 168/174

Com an Conf idential

Publishing IAP application on Nokia Store• In-app ID is the productID to

use in code

• Publication state is Not

published means the IAP

item isn’t on Nokia Store.

So you can’t retrieve its

information or purchase it

• Click Submit to QA button to

have it tested

• QA Status is In Progress

means QA is testing the IAP

item

• Once it’s passed QA, QA

Status will change to

Passed, the IAP item will be

published on Nokia Storethus Publication state will be

Published

Publishing IAP application on Nokia Store

Page 169: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 169/174

Com an Conf idential

g ppBefore moving to this step, make sure you have these things done:

1. IAP item has passed QA and published on Nokia Store

2. Re-build your application with the In-app ID provided by Nokia Publish

• Choose Content Files tab

• Enter  Content file name

• Check Use in-app purchase checkbox

• Upload JAD and JAR files

• Upload Additional documentation if needed:

• Flowchart

• Application Characteristic

• Click Upload & Continue button

Publishing IAP application on Nokia Store

Page 170: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 170/174

Com an Conf idential

g• Select all Devices that you’d like to distribute

• Click Next button

Publishing IAP application on Nokia Store

Page 171: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 171/174

Com an Conf idential

g

• Select all Countries that you’d like to support

• Click Next button

• Select all Languages that you’d like to support

• Click Save button

Publishing IAP application on Nokia Store

Page 172: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 172/174

Com an Conf idential

g pp

• Click Submit to QA button to have your application tested

• Follow the test report and keep fixing bugs until your application has been published on

Nokia Store

Code Examples

Page 173: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 173/174

Code Examples

» Online

 –  http://bit.ly/JavaCodeExamples

» Included in Help

 –  Emulator → Help → MIDlet Samples

» Maps & Analytics

 –  C:\Nokia\devices\Nokia_SDK_2_0_Java\plugins

Page 174: Nokia Series 40 Full Touch Training - May 03 2013

7/18/2019 Nokia Series 40 Full Touch Training - May 03 2013

http://slidepdf.com/reader/full/nokia-series-40-full-touch-training-may-03-2013 174/174

Thank You

phong cao@nokia com


Recommended