Hi

I have been trying to connect a program written in Java(J2SE) on my computer with program written in Symbian C++ on the mobile using bluetooth. My simple aim is to pass a string say "Hello World" from my mobile to computer. The Java part is complete and its basically like a server waiting for connection. Bluetooth settings are normal on my computer with microsoft bluetooth emulator, widcomm stack, bluecove and all that. For the mobile part I have used the bt point to point example given in the SDK documentation. But so far Im unable to connect both of them. Here is what I have done:

Firstly to confirm that the java server on computer is working correctly I used the btdiscover example given in sdk to see a list of services offered by my computer. And it works! I see the "MyBtService" (the human readable string name I have given to the java program) on the list with other info like UUID, Handle and other attributes. If u want I can give the exact record (with des and all that) which it showed upon discovery. So the java program works.

Now my logic is that if I can change the UUID to which the bt point to point example connects to....I can make it connect to my java program on the computer and send a simple hello world string. The device discovery part works well, but when I select my computers name from list of devices, I get "connection error".
Here are the changes I did in the source code:

I narrowed down to the CBTServiceSearcher::FindServiceL function in the bt point to point example code. FindServiceL sets up a record filter to filter out just the Serial Port service record. It calls SetRecordFilter on the CSdpAgent to register the filter with the agent .

in this code the iSdpSearchPattern variable contains the attribute (at least thats what I think) which contains the UUID to connect to.

Code:
void CBTServiceSearcher::FindServiceL(TRequestStatus& aObserverRequestStatus)
    {
    if (!iResponse().IsValidBDAddr())
        {
        User::Leave(KErrNotFound);
        }
    iHasFoundService = EFalse;

    // delete any existing agent and search pattern
    delete iSdpSearchPattern;
    iSdpSearchPattern = NULL;

    delete iAgent;
    iAgent = NULL;

    iAgent = CSdpAgent::NewL(*this, BTDevAddr());

    iSdpSearchPattern = CSdpSearchPattern::NewL();
   
    iSdpSearchPattern->AddL(ServiceClass()); 
    // return code is the position in the list that the UUID is inserted at 
    // and is intentionally ignored
  
    iAgent->SetRecordFilterL(*iSdpSearchPattern);

    iStatusObserver = &aObserverRequestStatus;

    iAgent->NextRecordRequestL();
    }
So if you look at the code of the function above... this line iSdpSearchPattern->AddL(ServiceClass());
is putting the attribute in the variable. How am I suppose to change it to the UUID of my service on the computer?? I tried simply putting the UUID of my service but it gave a variable out of range warning and program didnt work by still showing connection error after selecting the computer from discovered device's list.

Is my logic correct? Then how can I change the UUID attribute?
If my logic is wrong then tell me another way to connect a symbian c++ program on mobile to a java(j2se) program on the computer. Thanks!