PC Connectivity over Bluetooth in Java Applications - Simple and Chat examples
--------------------------------------------------------------------------------

These Java code examples demonstrate Bluetooth serial port communication 
between a PC and a mobile device. The package is divided into PC software (run from
Java main method) and device software (MIDlets), which both have the same directory structure
and applications: 
1) Simple examples to set up a Bluetooth serial port profile client or server;
2) Chat application, which forms a Bluetooth point-to-point network (note that
some Bluetooth devices do not support point-to-multipoint connections).

--------------------------------------------------------------------------------

PREREQUISITES


MIDP 2.0 basics and knowledge of the JSR-82 mandatory part (javax.bluetooth).
Basic knowledge of Java programming language is mandatory.

--------------------------------------------------------------------------------

SOFTWARE DEPENDENCIES

To run the example applications in a PC you need to install 
BlueCove (http://sourceforge.net/projects/bluecove/).

To connect from a PC through the Virtual COM port to your device you need to use 
serial port software. The Java Communications API (also known as javax.comm) 
provides a SerialDemo application (http://java.sun.com/products/javacomm/).

--------------------------------------------------------------------------------

FILES

./DeviceSoftware
./DeviceSoftware/.classpath
./DeviceSoftware/.project
./DeviceSoftware/ChatMIDlet.jad
./DeviceSoftware/ChatMIDlet.jar
./DeviceSoftware/SimpleMIDlet.jad
./DeviceSoftware/SimpleMIDlet.jar
./DeviceSoftware/src
./DeviceSoftware/src/chat
./DeviceSoftware/src/chat/BluetoothSettings.java
./DeviceSoftware/src/chat/ChatApplication.java
./DeviceSoftware/src/chat/ConnectionProtocol.java
./DeviceSoftware/src/chat/DiscoveryThread.java
./DeviceSoftware/src/chat/LcduiUI.java
./DeviceSoftware/src/chat/Log.java
./DeviceSoftware/src/chat/ServerThread.java
./DeviceSoftware/src/chat/WorkaroundStreamConnection.java
./DeviceSoftware/src/simple
./DeviceSoftware/src/simple/DeviceClientCOMM.java
./DeviceSoftware/src/simple/DeviceServerCOMM.java
./PCSoftware
./PCSoftware/.classpath
./PCSoftware/.project
./PCSoftware/build.xml
./PCSoftware/lib
./PCSoftware/lib/DOWNLOAD_BLUECOVE.txt
./PCSoftware/src
./PCSoftware/src/chat
./PCSoftware/src/chat/BluetoothSettings.java
./PCSoftware/src/chat/ChatApplication.java
./PCSoftware/src/chat/ConnectionProtocol.java
./PCSoftware/src/chat/DiscoveryThread.java
./PCSoftware/src/chat/Log.java
./PCSoftware/src/chat/ServerThread.java
./PCSoftware/src/chat/SwingUI.java
./PCSoftware/src/chat/WorkaroundStreamConnection.java
./PCSoftware/src/simple
./PCSoftware/src/simple/PCClientCOMM.java
./PCSoftware/src/simple/PCServerCOMM.java
./README.txt



--------------------------------------------------------------------------------

KNOWN ISSUES


The simple examples in the device side append text output to the LCDUI form, which may 
crash if run endlessly. 

S60 2nd Edition; S60 2nd Edition, Feature Pack 1; and Series 80 2nd Edition devices: 
Using Bluetooth serial port (RFCOMM) connection is not recommended due to disconnection
issue (this should not apply to S60 2nd Edition, Feature Pack 2, and newer devices). 
For further information, see known issue KIJ000109 in the Forum Nokia technical library:   
http://www.forum.nokia.com/Technical_Library/FNTL/Using_Bluetooth_serial_port_in_MIDlets.htm.


BlueCove's method to request a friendly name of the remote device may crash.


--------------------------------------------------------------------------------

RUNNING THE PC SOFTWARE

All PC software can be run from Eclipse once BlueCove is set up to your 
system and you have changed the project properties accordingly to your 
BlueCove installation. Of course you may also run the examples from the command 
line. In this case, remember to add the BlueCove Java archive to your classpath 
argument. An Ant build script is provided as well.


Simple Server
~~~~~~~~~~~~~

File:

    PCSoftware/src/simple/client/PCServerCOMM.java
 
Running from commandLine: 

    java -cp bin;lib\bluecove.jar example.simple.client.PCServerCOMM

Running with Ant:

    ant run-server

        
Simple Client
~~~~~~~~~~~~~

File:

    PCSoftware/src/simple/client/PCClientCOMM.java

Running from commandLine: 

    java -cp bin;lib\bluecove.jar example.simple.client.PCClientCOMM
    
Running with Ant:

    ant run-client


Chat Application
~~~~~~~~~~~~~~~~

Files:

    PCSoftware/src/chat/BluetoothSettings.java
    PCSoftware/src/chat/ChatApplication.java
    PCSoftware/src/chat/ConnectionProtocol.java
    PCSoftware/src/chat/DiscoveryThread.java
    PCSoftware/src/chat/Log.java
    PCSoftware/src/chat/ServerThread.java
    PCSoftware/src/chat/SwingUI.java
       
Running from commandLine: 

    java -cp bin;lib\bluecove.jar example.chat.ChatApplication

Running with Ant:

    ant run

--------------------------------------------------------------------------------

RUNNING THE DEVICE SOFTWARE


All device software can be run as MIDlets in your device. Refer to your 
device manual for instructions on how to deploy the MIDlet into your device. Deployed MIDlets 
can be run as applications.

Simple Server
~~~~~~~~~~~~~

Files:

    DeviceSoftware/src/simple/client/DeviceServerCOMM.java
    DeviceSoftware/SimpleMIDlet.jad
    DeviceSoftware/SimpleMIDlet.jar

    
Simple Client
~~~~~~~~~~~~~

Files:

    DeviceSoftware/src/simple/client/DeviceClientCOMM.java
    DeviceSoftware/SimpleMIDlet.jad
    DeviceSoftware/SimpleMIDlet.jar
    
Chat Application
~~~~~~~~~~~~~~~~

Files:

    DeviceSoftware/src/chat/BluetoothSettings.java
    DeviceSoftware/src/chat/ChatApplication.java
    DeviceSoftware/src/chat/ConnectionProtocol.java
    DeviceSoftware/src/chat/DiscoveryThread.java
    DeviceSoftware/src/chat/Log.java
    DeviceSoftware/src/chat/ServerThread.java
    DeviceSoftware/src/chat/SwingUI.java
    DeviceSoftware/ChatMIDlet.jad
    DeviceSoftware/ChatMIDlet.jar



--------------------------------------------------------------------------------

COMPATIBILITY

S60 2nd Edition
S60 3rd Edition
(Series 40 2nd Edition)
(Series 40 3rd Edition)

The example MIDlets have been tested on the Nokia 6630 and Nokia E70 mobile devices. 
The example Java applications has been tested on Windows XP SP2 with 
BlueCove version 1.1.2 and EPoX BT-DG03 Bluetooth USB Dongle.
--------------------------------------------------------------------------------    

EVALUATE THIS RESOURCE

Please spare a moment to help us improve documentation quality and recognize the examples you find most valuable, 
by rating this resource at 
http://www.forum.nokia.com/main/1%2C%2C90%2C00.html?surveyId=85b9d2ee-83f1-4c7b-8e71-0b1e35d0c1e9/PC_Connectivity_over_BT_in_Java_Apps_with_Example_v1_0_en.zip. 
