This chapter lists implementation specifics for classes and interfaces of the Bluetooth API in cases where they differ from the JSR-82 API specification.
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.
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.
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
).
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.