S60 class and interface description

This chapter lists implementation specifics for classes and interfaces of the Bluetooth API in cases where they differ from the JSR-82 API specification.

javax.microedition.io.Connector

Connector.open(String name)

Master/slave switch in URI (such as master=true request in name parameter) is not supported. If master/slave switch is given as a parameter to Connector.open() call, the BluetoothConnectionException is thrown.

The authenticate and encrypt security requests for the connection have to be specified in Connector.open() call. After connection has been established the authentication and encryption state for the connection cannot be changed.

javax.bluetooth.DiscoveryAgent

DiscoveryAgent.startInquiry(int accessCode, DiscoveryListener listener)

It is possible to start device discovery with accessCode parameter set to DiscoveryAgent.LIAC, but note that S60 devices can only be discovered with accessCode parameter set to DiscoveryAgent.GIAC. See the chapter about LocalDevice.setDiscoverable() for explanation.

javax.bluetooth.LocalDevice

LocalDevice.setDiscoverable(int mode)

API implementation supports setting discoverability mode to values DiscoveryAgent.GIAC, DiscoveryAgent.LIAC, and DiscoveryAgent.NOT_DISCOVERABLE. If some other value is given as a parameter, the method returns false and discoverability mode is not changed.

When the application sets discoverability mode to be limitedly discoverable (DiscoveryAgent.LIAC), the device is discoverable in DiscoveryAgent.GIAC mode for 60 seconds. After the time is up, the API implementation sets discoverability mode to hidden (DiscoveryAgent.NOT_DISCOVERABLE).

javax.bluetooth.RemoteDevice

RemoteDevice.authenticate()

Authentication state of the connection cannot be changed. This method returns true if the connection is already authenticated and false in all other cases.

RemoteDevice.encrypt(javax.microedition.io.Connection conn, boolean on)

Switching encryption state of a connection is not supported. If the connection is already encrypted, RemoteDevice.encrypt(conn, true) returns true, as does RemoteDevice.encrypt(conn, false) if encryption is already turned off.