Nokia Overview: Difference between revisions

From University of Washington - Ubicomp Research Page
Jump to navigationJump to search
m (Nokia moved to Nokia Overview)
No edit summary
Line 6: Line 6:


Finally, phones are finicky. The version numbers listed are shown for a reason -- they are known to work. Often upgrading to a new version will break some functionality. It is also a good idea to keep installers as once new versions come out, the old one that worked will be removed from the manufacturer's site.
Finally, phones are finicky. The version numbers listed are shown for a reason -- they are known to work. Often upgrading to a new version will break some functionality. It is also a good idea to keep installers as once new versions come out, the old one that worked will be removed from the manufacturer's site.
== Python ==
Python on Symbian gives you access to hardware while still offering relatively easy development.
* [http://www.forum.nokia.com/info/sw.nokia.com/id/ee447e84-2851-471a-8387-3434345f2eb0/Python_for_S60.html Nokia Python Tools]
== Java (NetBeans) ==
NetBeans is generally easier than Eclipse, but Eclipse is Nokia's "standard tool". Install the following tools (in order).
* [http://www.nokia.com/A4144907 PC Suite 6.82]
* [http://java.sun.com/javaee/downloads/index.jsp Java JDK]
* [http://www.netbeans.info/downloads/index.php NetBeans IDE 5.5]
* [http://www.netbeans.info/downloads/index.php?rs=11&p=4 NetBeans Mobility Pack 5.5]
* [http://java.sun.com/products/sjwtoolkit/download-2_5.html Sun Wireless Toolkit] has more optional packages and examples
If you haven't used NetBeans or done J2ME, try the following:
* [http://www.netbeans.org/kb/55/quickstart-mobility.html QuickStart Guide]
* Press F11 to build the application. The console will display the location of the .jar file you want. Once you've built find the jar, and use Nokia Application Installer (in Nokia PC Suite, Install Applications) to move it to the phone.
== Java (Eclipse) ==
Most people use Eclipse and it's the Nokia standard. That said, the SDK seems to be crash prone. Install the tools below in order.
* [http://java.sun.com/j2se/1.4.2/download.html J2SE v1.4.2_13 SDK]. Install in the default location.
* [http://java.sun.com/javaee/downloads/index.jsp Java JDK]
* [http://www.eclipse.org/downloads/ Eclipse 3.2.1]. Known to crash, so save frequently. Use Java 1.4 to build or emulation will fail.
* [http://forum.nokia.com/info/sw.nokia.com/id/d9f7e9b2-3932-4358-9e8e-aa5cd26be54e.html Carbide.j 1.5]. Get the SN from [http://forum.nokia.com forum.nokia.com].
* [http://forum.nokia.com/info/sw.nokia.com/id/d9f7e9b2-3932-4358-9e8e-aa5cd26be54e.html Nokia PC Suite 6.80.21]. Comes with Carbide.j. Newer versions will break deployment.
* [http://www.forum.nokia.com/info/sw.nokia.com/id/7a378a46-1dcb-4275-9e08-9dfbb3551f7f.html S60 3rd Ed SDK for MIDP]. Only needed for on-device debugging (BT,WiFi). Kind of buggy.
A few things to keep in mind:
* [http://forum.nokia.com/info/sw.nokia.com/id/93021595-9c99-4b0e-87b6-4a0b79d16541/Screencast_Carbide_j.html Hello World in Carbide.j] is useful
* If emulation isn't working, you should check to see if Eclipse is using Java 1.4 to compile. If known working apps aren't working on the phone, it's most likely the wrong compiler. (Window > Preferences > Java > Compiler > Compiler compliance level should be 1.4)
* If deployment isn't working, you probably updated the Nokia PC Suite. Uninstall the entire PC suite and all Nokia connectivity drivers. Firmware updates seem to be OK, but unless you have a reason to update firmware, stay away.
* Make sure you hit the refresh button before you generate the new JAD/JAR files, or you may get stale files sent to the phone.
== C++ (Carbide) ==
While you can build your own toolchain, Carbide.c++ is much easier and more stable.
* [http://www.nokia.com/A4144907 PC Suite 6.82]
* [http://java.sun.com/javase/downloads/index_jdk5.jsp Java JDK 5.0 Update 11]. Needed for emulation,.
* [http://www.forum.nokia.com/main/resources/tools_and_sdks/index.html#cpp Carbide.c++ v1.1]. Get the SN from ( [http://forum.nokia.com forum.nokia.com]. You do not need the CFTags parser.
* [http://www.activestate.com/store/activeperl/download/ Perl 5.6.1.638]
* [http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html S60 Platform SDKs for Symbian OS, for C++, 3rd Edition, FP1]
Symbian tends to be a pain, so these will help you get started:
* The Carbide.c++ screencast is mostly useless and definitely wrong in places. Try [http://www.symbianone.com/index2.php?option=content&task=view&id=3027&pop=1&page=0 Carbide.c++: Getting Started] instead.
* The Carbide.c++ tutorial is in Help-> Getting Started-> First Application Example. 
* If you want on device debugging, you need €299 to pay for the developer edition of Carbide.
* The (very slow) emulator may look like an emulator, but it isn't. The phone will behave differently.
* To deploy an app, change the build type in Carbide to "Deploy (release)", then double click HelloWorld/sis/HelloWorld.sis to install
* If you get security errors on phone, Go into Menu: Tools: App Mgr. Then select Options: Settings. Make sure software installation is "All".
== Tips ==
* New applications once installed show up in the "My Own" or "My Installations" folder
* Make a new ad-hoc network: Tools -> Settings -> Connection -> Access Points -> Options -> New Access Point
* Manually assigning an IP address to the phone: Tools -> Settings -> Connection -> Access Points -> (Choose your ad-hoc ap) -> Options -> Advanced Settings -> IP4 Phone IP Address
* You will need to [http://www.cs.washington.edu/lab/services/network/CSEnetAccess.html register] the phone to the CSE network if you wish to communicate with department machines. Getting the WLAN MAC address requires the codes listed below.
* If the Nokia phone is running as a Bluetooth client, it has to do a device inquiry, it does not support connecting to a known service on a known device. This is a limitation of the implementation of JavaME on the phones, but should work in Symbian.
* JavaME apps cannot run as a background process. They can be put into the background through a PushRegistry command that essentially stops them. They can then be restarted via a timer or incoming network process. True background apps can only be done in Symbian.
== Links ==
* [http://www.java2s.com/Code/Java/J2ME/CatalogJ2ME.htm J2ME Source] Tons of examples.
* [http://www.j2mepolish.org/ J2ME Polish] The easiest way to do GUIs, logging, and other useful things.
* [http://www.benhui.net/ J2ME Bluetooth Apps] Before you do anything with Bluetooth in J2Me, check this out.
* [http://mpowerplayer.com/ J2ME on a Mac] An emulator for doing J2ME on a Mac. Talk to yanokwa@cs for more Mac details.
* [http://www.midpjni.com Framework for talking to native code over a socket] J2ME (java for phones) doesn't have JNI, so this is useful.
* [http://discussion.forum.nokia.com/forum/archive/index.php/t-71420.html Symbian WLAN Signal Strength] - Code for getting RSSI.
* [http://nokia.howardforums.com/ Howard Forums] The premier phone site, Nokia section
== Codes ==
These codes enable you to retrieve information about the phone and perform special functions.
Most Nokia phones support these:
* *#06# - Displays phone's IMEI (Serial) number.
* *#0000# - Displays phone's current firmware version.
* *#2820# - Displays phone's bluetooth MAC address.
* *#7370# - Resets phone to factory settings. You lose all data. To authorize, use: 12345.
* *#7780# - Resets the phone to factory settings. You will NOT lose data. To authorize, use: 12345.
* *#62209526# - Displays your phone’s WLAN MAC address.
* Phone reset - Turn off phone. Hold # + 3 + Call and turn on phone.
If your phone has a T-Mobile SIM:
* #999# - Displays the account's balance.
* #686# - Displays the account's phone number.
* *TOGO - Customer service.
* *ADD - Add minutes.
* 123 - Voicemail.

Revision as of 22:21, 20 April 2007

Overview

Most of this information applies to Nokia S60 v3 phones. Most of the phones we have are either the N80 (slider phone with two cameras) or the E70 (flip keyboard phone).

If you are doing any development, the two popular languages are Java (J2ME/JavaME) or C++ (Symbian C++). Java is much easier than C++, but Java has limited functionality (no background processes, cannot access hardware components of phone, etc). Python is also available and it's probably the best of both worlds, but no one in the department uses it. Needless to say, you should explore (read: ask someone who knows) the constraints of the language before you pick it.

Finally, phones are finicky. The version numbers listed are shown for a reason -- they are known to work. Often upgrading to a new version will break some functionality. It is also a good idea to keep installers as once new versions come out, the old one that worked will be removed from the manufacturer's site.