|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.bluetooth.RemoteDevice
The RemoteDevice
class represents a remote Bluetooth device.
It provides basic
information about a remote device including the device's Bluetooth address and
its friendly name.
Constructor Summary | |
protected |
RemoteDevice(java.lang.String address)
Creates a Bluetooth device based upon its address. |
Method Summary | |
boolean |
authenticate()
Attempts to authenticate this RemoteDevice . |
boolean |
authorize(javax.microedition.io.Connection conn)
Determines if this RemoteDevice should be allowed
to continue to access the local service provided by the
Connection . |
boolean |
encrypt(javax.microedition.io.Connection conn,
boolean on)
Attempts to turn encryption on or off for an existing connection. |
boolean |
equals(java.lang.Object obj)
Determines if two RemoteDevice s are equal. |
java.lang.String |
getBluetoothAddress()
Retrieves the Bluetooth address of this device. |
java.lang.String |
getFriendlyName(boolean alwaysAsk)
Returns the name of this device. |
static RemoteDevice |
getRemoteDevice(javax.microedition.io.Connection conn)
Retrieves the Bluetooth device that is at the other end of the Bluetooth Serial Port Profile connection, L2CAP connection, or OBEX over RFCOMM connection provided. |
int |
hashCode()
Computes the hash code for this object. |
boolean |
isAuthenticated()
Determines if this RemoteDevice has been
authenticated. |
boolean |
isAuthorized(javax.microedition.io.Connection conn)
Determines if this RemoteDevice has been
authorized previously by the BCC of the local device to
exchange data related to the service associated with the
connection. |
boolean |
isEncrypted()
Determines if data exchanges with this RemoteDevice
are currently being encrypted. |
boolean |
isTrustedDevice()
Determines if this is a trusted device according to the BCC. |
Methods inherited from class java.lang.Object |
getClass,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
protected RemoteDevice(java.lang.String address)
008037144297
00af8300cd0b
014bd91DA8FC
address
- the address of the Bluetooth device as a 12 character
hex stringaddress
is
null
address
is the
address of the local device or is not a valid Bluetooth addressMethod Detail |
public boolean isTrustedDevice()
true
if the device is a trusted device, otherwise
false
public java.lang.String getFriendlyName(boolean alwaysAsk) throws java.io.IOException
alwaysAsk
is true
.alwaysAsk
- if true
then the device will be
contacted for its name, otherwise, if there exists a known
name for this device, the name will be returned without
contacting the remote devicenull
if the
Bluetooth system does not support this feature; if the local device
is able to contact the remote device, the result will never be
null
; if the remote device does not have a name
then an empty string will be returnedpublic final java.lang.String getBluetoothAddress()
null
.public boolean equals(java.lang.Object obj)
RemoteDevice
s are equal. Two devices are
equal if they have the same Bluetooth device address.obj
- the object to compare totrue
if both devices have the same Bluetooth
address; false
if both devices do not have the same address;
false
if obj
is null
;
false
if obj
is not a
RemoteDevice
public int hashCode()
public static RemoteDevice getRemoteDevice(javax.microedition.io.Connection conn) throws java.io.IOException
null
.conn
- the Bluetooth Serial Port connection, L2CAP connection,
or OBEX over RFCOMM connection whose remote Bluetooth device is neededconn
is not a
Bluetooth Serial Port Profile connection, L2CAP connection, or OBEX
over RFCOMM connection; if conn
is a
L2CAPConnectionNotifier
,
StreamConnectionNotifier
, or
SessionNotifier
conn
is
null
public boolean authenticate() throws java.io.IOException
RemoteDevice
.
Authentication is a means of verifying the identity of a remote
device. Authentication involves a device-to-device challenge and
response scheme that requires a 128-bit common secret link key
derived from a PIN code shared by both devices. If either side's
PIN code does not match, the authentication process fails and the
method returns false
. The method will also return
false
if authentication is incompatible with the
current security settings of the local device established by the
BCC, if the stack does not
support authentication at all, or if the stack does not support
authentication subsequent to connection establishment.
If this RemoteDevice
has previously been
authenticated, then this method returns true
without attempting to re-authenticate this
RemoteDevice
.
true
if authentication is successful;
otherwise false
RemoteDevice
public boolean authorize(javax.microedition.io.Connection conn) throws java.io.IOException
RemoteDevice
should be allowed
to continue to access the local service provided by the
Connection
. In Bluetooth, authorization is
defined as the process of deciding if device X is allowed to
access service Y. The implementation of the
authorize(Connection conn)
method asks the
Bluetooth Control Center (BCC) to decide if it is acceptable
for RemoteDevice
to continue to access a local
service over the connection conn
. In devices with
a user interface, the BCC is expected to consult with the user
to obtain approval.
Some Bluetooth systems may allow the user to permanently
authorize a remote device for all local services. When a device
is authorized in this way, it is known as a "trusted device"
-- see isTrustedDevice()
.
The authorize()
method will also check that the
identity of the RemoteDevice
can be verified through authentication.
If this RemoteDevice
has been authorized for
conn
previously, then this method returns
true
without attempting to re-authorize this
RemoteDevice
.
conn
- the connection that this RemoteDevice
is
using to access a local servicetrue
if this RemoteDevice
is
successfully authenticated and authorized, otherwise
false
if authentication or authorization failsconn
is not
a connection to this RemoteDevice
, or if the local
device initiated the connection, i.e., the local device is the
client rather than the server. This exception is also thrown if
conn
was created by RemoteDevice
using a scheme other than btspp
,
btl2cap
, or btgoep
. This exception
is thrown if conn
is a notifier used by a server
to wait for a client connection, since the notifier is not a
connection to this RemoteDevice
.conn
is closedisTrustedDevice()
public boolean encrypt(javax.microedition.io.Connection conn, boolean on) throws java.io.IOException
on
is
true
, this method will first authenticate this
RemoteDevice
if it has not already been
authenticated. Then it will attempt to turn on encryption. If
the connection is already encrypted then this method
returns true
. Otherwise, when the parameter on
is true
, either: true
, or false
. This
could happen because the stack does not support encryption or
because encryption conflicts with the user's security settings
for the device. In the case where the parameter on
is
false
, there are again two possible outcomes:
true
is returned, or false
is returned. encrypt(conn,
false)
for a variety of reasons. The user's current
security settings for the device may require encryption or the
stack may not have a mechanism to turn off encryption. Also,
the BCC may have determined that encryption will be kept on for
the physical link to this RemoteDevice
. The
details of the BCC are implementation dependent, but encryption
might be left on because other connections to the same device
need encryption. (All of the connections over the same
physical link must be encrypted if any of them are encrypted.)
While attempting to turn encryption off may not succeed
immediately because other connections need encryption on, there
may be a delayed effect. At some point, all of the connections
over this physical link needing encryption could be closed or
also have had the method encrypt(conn, false)
invoked for them. In this case, the BCC may turn off
encryption for all connections over this physical link. (The
policy used by the BCC is implementation dependent.) It is
recommended that applications do encrypt(conn,
false)
once they no longer need encryption to allow the
BCC to determine if it can reduce the overhead on connections
to this RemoteDevice
.
The fact that encrypt(conn, false)
may not
succeed in turning off encryption has very few consequences for
applications. The stack handles encryption and decryption, so
the application does not have to do anything different
depending on whether the connection is still encrypted or not.
conn
- the connection whose need for encryption has changedon
- true
attempts to turn on encryption;
false
attempts to turn off encryptiontrue
if the change succeeded, otherwise
false
if it failedconn
is closedconn
is not
a connection to this RemoteDevice
; if conn
was
created by the
client side of the connection using a scheme other than
btspp
, btl2cap
, or
btgoep
(for example, this exception will be
thrown if conn
was created using the
file
or http
schemes.);
if conn
is a notifier used by a server
to wait for a client connection, since the notifier is not a
connection to this RemoteDevice
public boolean isAuthenticated()
RemoteDevice
has been
authenticated.
A device may have been authenticated by this application
or another application. Authentication applies to an ACL link between
devices and not on a specific L2CAP, RFCOMM, or OBEX connection.
Therefore, if authenticate()
is performed when an L2CAP
connection is made to device A, then isAuthenticated()
may
return true
when tested as part of making an RFCOMM
connection to device A.
true
if this RemoteDevice
has
previously been authenticated; false
if it has not
been authenticated or there are no open connections between the
local device and this RemoteDevice
public boolean isAuthorized(javax.microedition.io.Connection conn) throws java.io.IOException
RemoteDevice
has been
authorized previously by the BCC of the local device to
exchange data related to the service associated with the
connection. Both clients and servers can call this method.
However, for clients this method returns false
for
all legal values of the conn
argument.conn
- a connection that this RemoteDevice
is
using to access a service or provide a servicetrue
if conn
is a server-side
connection and this RemoteDevice
has been
authorized; false
if conn
is a
client-side connection, or a server-side connection that has not
been authorizedconn
is not
a connection to this RemoteDevice
; if
conn
was not created using one of the schemes
btspp
, btl2cap
, or
btgoep
; or if conn
is a notifier
used by a server to wait for a client connection, since the
notifier is not a connection to this RemoteDevice
.conn
is closedpublic boolean isEncrypted()
RemoteDevice
are currently being encrypted.
Encryption may have been previously turned on by this or another
application. Encryption applies to an ACL link
between devices and not on a specific L2CAP, RFCOMM, or OBEX connection.
Therefore, if encrypt()
is performed with the
on
parameter set to true
when an L2CAP
connection is made to device A, then isEncrypted()
may
return true
when tested as part of making an RFCOMM
connection to device A.
true
if data exchanges with this
RemoteDevice
are being encrypted; false
if they are not being encrypted, or there are no open connections
between the local device and this RemoteDevice
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |