Slashdot Mirror


Bluetooth Application Programming?

Comatose51 asks: "I've been desperately trying to create an application that uses Bluetooth over the last month. I've been frustrated by the lack of good books and lack of hardware compatible with readily available Bluetooth APIs. While Microsoft added Bluetooth support into Windows XP since SP1, most hardware vendors do not use the Microsoft Bluetooth Stack. Instead, they use other proprietary stacks that costs money to obtain the SDKs and APIs for. I had to buy the Microsoft Bluetooth Mouse to get their Bluetooth Stack and a compliant adapter, which is still many times cheaper than what some companies charge for their APIs and SDKs. Java is the other (potentially better, easier) option but I haven't found any hardware vendors that state that they're Java (JSR-82) compliant. Is there really no easy way of developing Bluetooth applications for Windows? It is sad because Bluetooth holds so much promise. Thanks in advance." Might Bluetooth's problems stem from the fact that there is no consistent development platform for the technology?

5 of 42 comments (clear)

  1. Re:BlueTooth is just crappy. by Fat+Cow · · Score: 2, Informative

    this is what obex does. obex works over bluetooth, irda, http etc.

    --
    stay frosty and alert
  2. Re:BlueTooth is just crappy. by iCEBaLM · · Score: 4, Informative

    My other main problem with it is that it is missing a certain level of standards, which is the set of standards that would define the services a device offers. It does have a mechanism for indicating the type of device to which you are connected, but it seems only enough to pick an icon, not to decide what to actually say.

    Apparently the whole idea of bluetooth profiles is lost on you? This is exactly what their for. Devices support different profiles, such as, the virtual serial port profile, audio gateway, headset, file transfer, network access, PIM item transfer, etc. Descovering what a device does is as easy as asking it what profiles it supports.

    What it needs is a set of protocols, preferably XML-based, since XML is 31337, that can transfer files, send/receive photos, take pictures, record audio, dial/talk on phone calls, etcetera. These would be organized into a menu on the device, like "Files", "Pictures", "Voice Recorder", "Phone", etcetera, so devices that do some or all of these would simply show a choice (tabs, maybe) for what feature to use.

    Bluetooth *already does this*, just replace XML with OBEX and it does everything you just said. It makes me wonder where you got your experience, if any, with using bluetooth devices.

    -- iCEBaLM

  3. Widcomm... by JamesP · · Score: 2, Informative

    Try the Widcomm API.

    Yes, it has lots of problems, and you have to correspond API==SDK (that is, if you develop w 1.4 SDK it can only run in the 1.4 Stack). But it's fairly easy to program, an it has all that metters (RFCOMM and L2CAP)

    I guess compatibility is good (never had any problems)

    I've never used the WIndows XP one, but I reckon it's more difficult to use.

    --
    how long until /. fixes commenting on Chrome?
  4. Java and Bluetooth work well together by Anonymous Coward · · Score: 2, Informative

    Take a look at my site www.javabluetooth.com, it has almost everything that you're looking for. For instance:

    1. It has a list of hardware to get you started in Java Bluetooth development
    2. A list of Java Bluetooth SDKs
    3. Information on my book, "Bluetooth for Java"
    4. A sample chapter from my book
    5. All the source code from my book


    The folks on Amazon like my book, so you might want to check it out. You don't have to buy the book, but the early chapters explain all the complexities of Bluetooth, and makes it easy for Java and J2ME programmers.

    Bruce

  5. Bluetooth Dev kit by mannionh · · Score: 2, Informative

    A company called Rococo have a development kit which hides the complexity of bluetooth behind an API, they also have a simulation envirnoment so you can test your apps before deploying them on the target devices. As far as I know theres a free download for linux.