public class LocalDevice
extends java.lang.Object
LocalDevice
class defines the basic functions of the Bluetooth manager. The Bluetooth manager
provides the lowest level of interface possible into the Bluetooth stack. It provides access to and control of the
local Bluetooth device.
This class produces a singleton object.
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getBluetoothAddress()
Retrieves the Bluetooth address of the local device.
|
DeviceClass |
getDeviceClass()
Retrieves the
DeviceClass object that represents the service classes, major device class, and minor
device class of the local device. |
int |
getDiscoverable()
Retrieves the local device's discoverable mode.
|
DiscoveryAgent |
getDiscoveryAgent()
Returns the discovery agent for this device.
|
java.lang.String |
getFriendlyName()
Retrieves the name of the local device.
|
static LocalDevice |
getLocalDevice()
Retrieves the
LocalDevice object for the local Bluetooth device. |
static java.lang.String |
getProperty(java.lang.String property) |
ServiceRecord |
getRecord(StreamConnectionNotifier notifier)
Gets the service record corresponding to a
btspp , btl2cap , or btgoep
notifier. |
static boolean |
isPowerOn()
Retrieves the power state of the local Bluetooth device.
|
boolean |
setDiscoverable(int mode)
Sets the discoverable mode of the device.
|
void |
updateRecord(ServiceRecord srvRecord) |
public java.lang.String getBluetoothAddress()
null
. The
Bluetooth address will be 12 characters long. Valid characters are 0-9 and A-F.public DeviceClass getDeviceClass()
DeviceClass
object that represents the service classes, major device class, and minor
device class of the local device. This method will return null
if the service classes, major device
class, or minor device class could not be determined.null
if the service classes, major device class or minor device class could not be determinedpublic int getDiscoverable()
DiscoveryAgent.GIAC
,
DiscoveryAgent.LIAC
, DiscoveryAgent.NOT_DISCOVERABLE
, or a value in the range 0x9E8B00
to 0x9E8B3F.public DiscoveryAgent getDiscoveryAgent()
null
.public java.lang.String getFriendlyName()
null
if the name could not be retrievedpublic static LocalDevice getLocalDevice() throws IOException
LocalDevice
object for the local Bluetooth device. Multiple calls to this method will
return the same object. This method will never return null
.IOException
- if the Bluetooth system could not be initializedpublic static java.lang.String getProperty(java.lang.String property)
public static boolean isPowerOn()
true
if the local Bluetooth device is powered on, false
if the local Bluetooth
device is off.public boolean setDiscoverable(int mode) throws IOException
mode
may be any number in the range 0x9E8B00 to
0x9E8B3F as defined by the Bluetooth Assigned Numbers Document. When this specification was defined, only GIAC (
DiscoveryAgent.GIAC
) and LIAC ( DiscoveryAgent.LIAC
) were defined, but Bluetooth
profiles may add additional access codes in the future. To determine what values may be used, check the Bluetooth
Assigned Numbers document at
http://www.bluetooth.org/assigned-numbers/baseband.htm. If DiscoveryAgent.GIAC
or
DiscoveryAgent.LIAC
are provided, then this method will attempt to put the device into general or
limited discoverable mode, respectively. To take a device out of discoverable mode, provide the
DiscoveryAgent.NOT_DISCOVERABLE
flag. The BCC decides if the request will be granted. In addition to
the BCC, the Bluetooth system could effect the discoverability of a device.
According to the Bluetooth Specification, a device should only be limited discoverable (
DiscoveryAgent.LIAC
) for 1 minute. This is handled by the implementation of the API. After the minute
is up, the device will revert back to the previous discoverable mode.
mode
- the mode the device should be in; valid modes are DiscoveryAgent.GIAC
,
DiscoveryAgent.LIAC
, DiscoveryAgent.NOT_DISCOVERABLE
and any value in the
range 0x9E8B00 to 0x9E8B3Ftrue
if the request succeeded, otherwise false
if the request failed because the
BCC denied the request; false
if the Bluetooth system does not support the access mode
specified in mode
java.lang.IllegalArgumentException
- if the mode
is not DiscoveryAgent.GIAC
, DiscoveryAgent.LIAC
,
DiscoveryAgent.NOT_DISCOVERABLE
, or in the range 0x9E8B00 to 0x9E8B3FIOException
- if the Bluetooth system is in a state that does not allow the discoverable mode to be changedDiscoveryAgent.GIAC
,
DiscoveryAgent.LIAC
,
DiscoveryAgent.NOT_DISCOVERABLE
public void updateRecord(ServiceRecord srvRecord)
public ServiceRecord getRecord(StreamConnectionNotifier notifier)
btspp
, btl2cap
, or btgoep
notifier. In the case of a run-before-connect service, the service record returned by getRecord()
was
created by the same call to Connector.open()
that created the notifier
.
If a connect-anytime server application does not already have a service record in the SDDB, either because a
service record for this service was never added to the SDDB or because the service record was added and then
removed, then the ServiceRecord
returned by getRecord()
was created by the same call to
Connector.open()
that created the notifier.
In the case of a connect-anytime service, there may be a service record in the SDDB corresponding to this service
prior to application startup. In this case, the getRecord()
method must return a
ServiceRecord
whose contents match those of the corresponding service record in the SDDB. If a
connect-anytime server application made changes previously to its service record in the SDDB (for example, during
a previous execution of the server), and that service record is still in the SDDB, then those changes must be
reflected in the ServiceRecord
returned by getRecord()
.
Two invocations of this method with the same notifier
argument return objects that describe the same
service attributes, but the return values may be different object references.
notifier
- a connection that waits for clients to connect to a Bluetooth serviceServiceRecord
associated with notifier
java.lang.IllegalArgumentException
- if notifier
is closed, or if notifier
is not a Bluetooth notifier, e.g., a
StreamConnectionNotifier
created with a scheme other than btspp
.java.lang.NullPointerException
- if notifier
is null