|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.bluetooth.DiscoveryAgent
public class DiscoveryAgent
The DiscoveryAgent class provides methods to perform
device and service discovery. A local device must have only one
DiscoveryAgent object. This object must be retrieved
by a call to getDiscoveryAgent() on the
LocalDevice object.
startInquiry() to start an inquiry to find devices
in proximity to the local device. Discovered devices are returned
via the deviceDiscovered() method of the interface
DiscoveryListener. The second way to
discover devices is via the retrieveDevices() method.
This method will return devices that have been discovered via a
previous inquiry or devices that are classified as pre-known.
(Pre-known devices are those devices that are defined in the
Bluetooth Control Center as devices this device frequently contacts.)
The retrieveDevices() method does not perform an
inquiry, but provides a quick way to get a list of devices that may
be in the area.
DiscoveryAgent class also encapsulates the
functionality provided by the service discovery application profile.
The class provides an interface for an application to search and
retrieve attributes for a particular service. There are two ways to
search for services. To search for a service on a single device,
the searchServices() method should be used. On the
other hand, if you don't care which device a service is on, the
selectService() method does a service search on a
set of remote devices.
| Field Summary | ||
|---|---|---|
static int |
CACHED
Used with the retrieveDevices() method to return
those devices that were found via a previous inquiry. |
|
static int |
GIAC
The inquiry access code for General/Unlimited Inquiry Access Code (GIAC). |
|
static int |
LIAC
The inquiry access code for Limited Dedicated Inquiry Access Code (LIAC). |
|
static int |
NOT_DISCOVERABLE
Takes the device out of discoverable mode. |
|
static int |
PREKNOWN
Used with the retrieveDevices() method to return
those devices that are defined to be pre-known devices. |
|
| Method Summary | ||
|---|---|---|
boolean |
cancelInquiry(DiscoveryListener listener)
Removes the device from inquiry mode. |
|
boolean |
cancelServiceSearch(int transID)
Cancels the service search transaction that has the specified transaction ID. |
|
RemoteDevice[] |
retrieveDevices(int option)
Returns an array of Bluetooth devices that have either been found by the local device during previous inquiry requests or been specified as a pre-known device depending on the argument. |
|
int |
searchServices(int[] attrSet,
UUID[] uuidSet,
RemoteDevice btDev,
DiscoveryListener listener)
Searches for services on a remote Bluetooth device that have all the UUIDs specified in uuidSet. |
|
String |
selectService(UUID uuid,
int security,
boolean master)
Attempts to locate a service that contains uuid in
the ServiceClassIDList of its service record. |
|
boolean |
startInquiry(int accessCode,
DiscoveryListener listener)
Places the device into inquiry mode. |
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int NOT_DISCOVERABLE
The value of NOT_DISCOVERABLE is 0x00 (0).
public static final int GIAC
The value of GIAC is 0x9E8B33 (10390323). This value
is defined in the Bluetooth Assigned Numbers document.
public static final int LIAC
The value of LIAC is 0x9E8B00 (10390272). This value
is defined in the Bluetooth Assigned Numbers document.
public static final int CACHED
retrieveDevices() method to return
those devices that were found via a previous inquiry. If no
inquiries have been started, this will cause the method to return
null.
The value of CACHED is 0x00 (0).
DiscoveryAgent.retrieveDevices(int),
Constant Field Valuespublic static final int PREKNOWN
retrieveDevices() method to return
those devices that are defined to be pre-known devices. Pre-known
devices are specified in the BCC. These are devices that are
specified by the user as devices with which the local device will
frequently communicate.
The value of PREKNOWN is 0x01 (1).
DiscoveryAgent.retrieveDevices(int),
Constant Field Values| Method Detail |
|---|
public RemoteDevice[] retrieveDevices(int option)
option - CACHED if previously found devices
should be returned; PREKNOWN if pre-known devices
should be returned
option is CACHED;
an array of devices that are pre-known devices if
option is PREKNOWN; null
if no devices meet the criteria
IllegalArgumentException - if option is
not CACHED or PREKNOWN
public boolean startInquiry(int accessCode,
DiscoveryListener listener)
throws BluetoothStateException
deviceDiscovered() of the interface
DiscoveryListener. The cancelInquiry()
method is called to stop the inquiry.
accessCode - the type of inquiry to completelistener - the event listener that will receive device
discovery events
true if the inquiry was started;
false if the inquiry was not started because the
accessCode is not supported
IllegalArgumentException - if the access code provided
is not LIAC, GIAC, or in the range
0x9E8B00 to 0x9E8B3F
NullPointerException - if listener is
null
BluetoothStateException - if the Bluetooth device does
not allow an inquiry to be started due to other operations that are being
performed by the deviceDiscoveryAgent.cancelInquiry(javax.bluetooth.DiscoveryListener),
DiscoveryAgent.GIAC,
DiscoveryAgent.LIACpublic boolean cancelInquiry(DiscoveryListener listener)
An inquiryCompleted() event will occur with a type of
INQUIRY_TERMINATED as a result of calling this
method. After receiving this
event, no further deviceDiscovered() events will occur
as a result of this inquiry.
This method will only cancel the inquiry if the
listener provided is the listener that started
the inquiry.
listener - the listener that is receiving inquiry events
true if the inquiry was canceled; otherwise
false if the inquiry was not canceled or if the inquiry
was not started using listener
NullPointerException - if listener is
null
public int searchServices(int[] attrSet,
UUID[] uuidSet,
RemoteDevice btDev,
DiscoveryListener listener)
throws BluetoothStateException
uuidSet. Once the service is found,
the attributes specified in attrSet and the default
attributes are retrieved. The default attributes are
ServiceRecordHandle (0x0000), ServiceClassIDList
(0x0001), ServiceRecordState (0x0002), ServiceID (0x0003), and
ProtocolDescriptorList (0x0004).If attrSet is
null then only the default attributes will be retrieved.
attrSet does not have to be sorted in increasing order,
but must only contain values in the range [0 - (216-1)].
attrSet - indicates the attributes whose values will be
retrieved on services which have the UUIDs specified in
uuidSetuuidSet - the set of UUIDs that are being searched for; all
services returned will contain all the UUIDs specified herebtDev - the remote Bluetooth device to search for services onlistener - the object that will receive events when
services are discovered
BluetoothStateException - if the number of concurrent
service search transactions exceeds the limit specified by the
bluetooth.sd.trans.max property obtained from the
class LocalDevice or the system is unable to start
one due to current conditions
IllegalArgumentException - if attrSet has
an illegal service attribute ID or exceeds the property
bluetooth.sd.attr.retrievable.max
defined in the class LocalDevice; if
attrSet
or uuidSet is of length 0; if attrSet
or uuidSet contains duplicates
NullPointerException - if uuidSet,
btDev, or discListener is
null; if an element in uuidSet array is
nullDiscoveryListenerpublic boolean cancelServiceSearch(int transID)
searchServices(). A
serviceSearchCompleted() event with a discovery type
of SERVICE_SEARCH_TERMINATED will occur when
this method is called. After receiving this event, no further
servicesDiscovered() events will occur as a result
of this search.
transID - the ID of the service search transaction to
cancel; returned by searchServices()
true if the service search transaction is
terminated, else false if the transID
does not represent an active service search transaction
public String selectService(UUID uuid,
int security,
boolean master)
throws BluetoothStateException
uuid in
the ServiceClassIDList of its service record. This
method will return a string that may be used in
Connector.open() to establish a connection to the
service. How the service is selected if there are multiple services
with uuid and which devices to
search is implementation dependent.
uuid - the UUID to search for in the ServiceClassIDListsecurity - specifies the security requirements for a connection
to this service; must be one of
ServiceRecord.NOAUTHENTICATE_NOENCRYPT,
ServiceRecord.AUTHENTICATE_NOENCRYPT, or
ServiceRecord.AUTHENTICATE_ENCRYPTmaster - determines if this client must be the master of the
connection; true if the client must be the master;
false if the client can be the master or the slave
uuid; or null if no
service could be found with a UUID of uuid in the
ServiceClassIDList
BluetoothStateException - if the Bluetooth system cannot
start the request due to the current state of the Bluetooth system
NullPointerException - if uuid is
null
IllegalArgumentException - if security is
not ServiceRecord.NOAUTHENTICATE_NOENCRYPT,
ServiceRecord.AUTHENTICATE_NOENCRYPT, or
ServiceRecord.AUTHENTICATE_ENCRYPTServiceRecord.NOAUTHENTICATE_NOENCRYPT,
ServiceRecord.AUTHENTICATE_NOENCRYPT,
ServiceRecord.AUTHENTICATE_ENCRYPT
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal