nokia series 40 full touch training - may 03 2013
DESCRIPTION
Nokia series 40 full touch training programmingTRANSCRIPT
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]
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?
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
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
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
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
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
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› ...
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
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
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
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
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
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
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
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
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
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
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
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
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
r
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 - -
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)
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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);}
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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”;
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.
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)
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
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
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
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
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 ) ;
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 ) {
. . .
}
}
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 ) ;
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:
}
}
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
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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
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
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
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();
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
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/
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
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
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
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
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
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.
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) ;}
}
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
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 ) ;
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
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 ) ;
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) {}
}
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 ) ;
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
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
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
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
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!
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.
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
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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