This is a list of bluetooth APIs that I was testing for my bluetooth content sender application
|
Avetana |
|
| Platform | Java (Windows, Linux) |
| License | 25 euros each 3 bluetooth address |
| Implements JSR-82 | Yes |
|
32feet.net |
|
| Platform | .Net (Windows) |
| License | Free |
| Implements JSR-82 | No |
|
Electric Blue |
|
| Platafrom | Java (Windows) |
| License | 15 dollars for each bluetooth address |
| Implements JSR-82 | Yes |
|
Rococo |
|
| Platform | Java (Windows, Linux) |
| License | 2500 euros for each developer |
| Implements JSR-82 | No |
|
BlueZSpammer |
|
| Platform | C++ (Linux) |
| License | GNU |
| Implements JSR-82 | No |
|
BlueCove |
|
| Platform | Java (Windows, Linux, Mac) |
| License | GNU Lesser General Public License |
| Implements JSR-82 | Yes |
|
|
|
I Finally chose Avetana because it runs over Linux and Windows and implements JSR-82 that is the specification of bluetooth for J2ME devices.
The API 32feet.net was very easy to use for me, but the problem is that it only runs over Windows and Windos has the problem that only can handle one bluetooth dongle and a bluetooth dongle only can connect with 7 bluetooth devices at the same time, it’s a very important constraint for me.
I found BlueCove late and I didn’t have time to test it. It looks to be a very complete and robust API, runs on Windows, Linux and Mac and implements JSR-82.

Im replying in english to keep consistency between your post and this comment.
In your post you said that 32feet.net windows is limited to 7 peers per dongle, and one device per machine. Isnt the bluetooth specification that the max amount of slaves can be up to 7 and one master ? I think I may not be understanding what exactly is the problem (just having 1 dev in windows, or the 7 peers ).
I’m posting this comment because Im really curious about being able to connect to 7+ peers.
Atentamente
Carlos C
Hi Carlos,
The bluetooth specefication said that one bluetooth device master can handle until 7 slaves, no more, so if you need to handle more than 7 slaves that isnt possible. You have to use Linux instead Windows, because with Linux you can add N bluetooth dongles. If you are working with Windows you can only connect one bluetooth dongle to your PC.
If you want you can check the translate of this post in spanish at http://microedition.biz/?p=229&language=es
If you want you can contact me, check my contact page http://microedition.biz/?page_id=190&language=es
Best,
Pablo
Hi ,
I am working on creating a Bluetooth Server on PC and i am using Avetana and bluecove 2.1 libraries.I have successfully created Discovered the remote devices around me.I need to start a OBEX connection in my PC whihc acts as a server. When i try to start btgoep:\\localhost+uuid…. all that sort , i am given an exception tat “java.io.IOException: Can’t create Service [General fail]”
I have replaced the updated version of the OBEXConnector module of the de.avetana.bluetooth as specified in Forum.nokia.com….
I am unable to run the “Connector.open(url)” function Can u help me out , plz send me a mail if ya cld…..
my server code is follows
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package serpc;
import javax.bluetooth.*;
import de.avetana.bluetooth.obex.*;
import de.avetana.javax.obex.ServerRequestHandler;
import de.avetana.javax.obex.SessionNotifier;
//import de.avetana.obexsolo;
import java.io.*;
import java.util.*;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;
/**
*
* @author admin
*/
public class btrt extends ServerRequestHandler implements DiscoveryListener,Runnable {
boolean d;
serpc.OBEXConnector obex =new serpc.OBEXConnector();
// @Override
public void run ()
{
try
{
LocalDevice ld=LocalDevice.getLocalDevice();
DiscoveryAgent ds=ld.getDiscoveryAgent();
ld.setDiscoverable(DiscoveryAgent.GIAC);
d=ds.startInquiry(DiscoveryAgent.GIAC,this);
System.out.println(d);
System.out.println(ld.toString());
//loops(d);
}
catch(Exception e)
{
System.out.println(e.toString());
}
try{
Thread.sleep(50000);
} catch (Exception e){
}
}
public void connet()
{
try {
//UUID uuid = new UUID(“9106″, true);
UUID uuid = new UUID(0×1105);
String url = “btgoep://localhost:8;name=LP;authenticate=false;master=false;encrypt=false”;
//String url = “btspp://localhost:” + uuid + “;name=BTTP;authenticate=false;master=false;encrypt=false”;
// @SuppressWarnings(“static-access”)
System.out.println(url);
SessionNotifier sn = (SessionNotifier)obex.open(url);
// updateStatus(“[server:] Now waiting for a client to connect”);
System.out.println(“Coming Servidce”);
System.out.println(sn.acceptAndOpen(this).toString()); // Boolean
}
catch (Exception e)
{
System.out.println(“Eception”+e.toString());
}
}
public void inquiryCompleted(int discType) {
System.out.println(“InquiryCompleted”);
}
public void serviceSearchCompleted(int a,int b)
{
System.out.println(“ServicesDiscovered”);
}
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
}
public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {
System.out.println(“Device discovered ” + btDevice.getBluetoothAddress());
connet();
}
/* public void loops(boolean rt)
{
if(rt==true)
loops(d);
*/
}