Frequently Asked Questions

General Bluetooth Questions

A1

What is Bluetooth?

Bluetooth is a wireless communication protocol that supports distances equal to Wi-Fi (> 300ft.), but consumes less power, and transmits at lower speeds. Bluetooth is very attractive to phone and PDA manufacturers due to its low power consumption rate.

 

A2

How fast can I transmit data using Bluetooth?

Raw data rates for Bluetooth 1.0 and 1.1 devices are at 1 Mb/sec, although you can only use 720 kb of it for your applications. The latest version of Bluetooth is 2.0, which supports EDR (Enhanced Data Rates). Bluetooth devices with EDR can communicate at up to 3 Mb of raw data, of which, 2.1 Mb you can use for your applications.

 

A3 

What's a Piconet?

When two or more Bluetooth-enabled devices come within range and establish a connection, a personal area network is formed. A personal area network can either be a piconet or a scatternet.

A Bluetooth piconet has a single master and up to seven slaves. No matter what kind Bluetooth devices are involved (whether they are phones, access points, PDAs, laptops, headsets, etc.) the master of the piconet is the one that initiates the connection. The device that accepts the connection automatically becomes the slave. Master/slave roles are not predefined; so if a piconet exists between a laptop and a PDA, either device could be the master or the slave.

 

A4

What's a Scatternet?

A scatternet is essentially a chain of piconets. A scatternet is formed when the slave of a piconet also become the master of its own piconet.

 

 

Java Bluetooth Questions

B1

What's the advantage of using Java or J2ME with Bluetooth?

In particular, one of the major advantages of using JSR-82 for Bluetooth development is that the API is independent of the underlying hardware implementation. This way, you can develop and test your applications on one platform (i.e. on Win-32, Mac OS X, or Linux) and deploy it on another (a PDA or cellphone).

 

B2

So what is the JSR-82?

The JSR-82 is the official Java Bluetooth API, which was standardized by Motorola and the following companies in the Java Community Process:

  • Extended Systems
  • IBM
  • Mitsubishi
  • Newbury Networks
  • Nokia
  • Parthus Technologies
  • Research in Motion (RIM)
  • Rococo Software
  • Sharp Electronics
  • Sony Ericsson
  • Smart Fusion
  • Smart Network Devices
  • Sun Microsystems
  • Symbian
  • Telecordia
  • Vaultus
  • Zucotto

B3

My phone/PDA runs Java apps, and uses Bluetooth, so does that mean that it supports the JSR-82?

Unfortunately, no. Even though some devices run Java and use Bluetooth, that doesn't necessarity mean that they implement the JSR-82. See B4.

 

B4

What commercially available devices implement the JSR-82?

You can find a list of commercially available JSR-82 device on our JSR-82 Devices page.

 

B5 

I see that alot of phones include the JSR-82, are there any other devices that implement the JSR-82?

Naturally, phones are the most likely candidate to implement the JSR-82 because a majority of them already include J2ME or Bluetooth (or both). Currently, the only JSR-82 enabled device that ins't a phone is the PX30 access point made by Possio.


B6 

My phone doesn't implement the JSR-82, is there a way that I can upgrade it to include the JSR-82?

Probably not. Although some cell phone manufacturers may provide firmware updates for bug fixes, it is highly unlikely for them provide upgrades to increase functionality. They would prefer you to buy a new phone.

 

B7 

My PDA doesn't implement the JSR-82, is there a way that I can upgrade it to include the JSR-82?

Yes, see if your PDA qualifies in the list below:

  • Rococo only supports PalmOS 4.1 devices and includes the IBM J9 JVM. There is no implementation available for PalmOS 5 or 6 devices.
  • Atinav supports PocketPC devices. However, you'll need to contact them directly in order to find out which PocketPC devices and JVMs that they support.
  • Avetana supports PocketPC 2002 and 2003 with the CrEme JVM.

B8 

How do I get started developing Java Bluetooth applications on my PC?

One of the best ways to get started in Java Bluetooth development to obtain the JB-22, the only complete Java Bluetooth development kit available for PCs.

You can find more information about the JB-22 in C1 below.

 

B9 

I want to send sensitive data between two devices over Bluetooth. Is there a way to encrypt the data?

There are a couple of ways to encrypt the data between two Bluetooth devices using the JSR-82.

#1. In the connection URL String, add the parameter to set encryption to true:
String url = "btspp://02AB45AC35DF:00112233445566778899AABBCCDDEEFF;encrypt=true"

#2. Use your instance of RemoteDevice and the connection object and call encrypt()
remoteDevice.encrypt(conn, true);

You can find more information about Bluetooth security related issues in Chapter 9: Bluetooth Security in Bluetooth for Java.

 

B10 

Are there any good books on Java and Bluetooth?

Of course...    :-)

Bluetooth for Java, by Bruce Hopkins and Ranjith Antony
Companion Website
Buy at Amazon
Source Code

Bluetooth Application Programming with the Java APIs, by Kumar, Kline, and Thompson
Companion Website
Buy at Amazon
Source Code

Please also note that Martin de Jode dedicated an entire chapter on the JSR-82 in his J2ME book:

Programming Java 2 Micro Edition on Symbian OS, by Martin de Jode
Companion Website
Buy at Amazon
Source Code

 

B11

I have a mobile device that uses J2ME and a PC that uses J2SE. Is it possible for these devices to communiate over Bluetooth?

Yes. There should be no problem sending data from your J2ME device device to your desktop PC or laptop running J2SE.

 

B12 

Can my Bluetooth application written in Java communicate with another Bluetooth application written in C?

Yes. You should have no problem if both devices have implemented the Bluetooth specification properly.

 

B13

Can I connect to a remote Bluetooth service without performing Service Discovery?

Yes. If you're creating the client and server applications, then performing a Service Discovery may not be necessary. Just connect with the appropriate URL and go (in order to know exactly what the connection URL is, you should perform at least one Service Discovery).

The selectService() method was implemented in the JSR-82 for this purpose, but not all JSR-82 implementations support it.

 

 

JB-22 Questions

C1

What is the JB-22?

The JB-22 is a complete Java Bluetooth development kit featuring Bluetooth hardware and software.

 

C2

How much will the JB-22 cost?

We are targetting the JB-22 to be less than $200 USD.

 

C3

When will the JB-22 be available for purchase?

We plan to release the JB-22 by early Q2 2005.