| java.lang.Object | |
| ↳ | android.bluetooth.BluetoothAdapter | 
       Represents the local device Bluetooth adapter. The
       
        
         BluetoothAdapter
        
       
       lets you perform fundamental Bluetooth tasks, such as initiate
 device discovery, query a list of bonded (paired) devices,
 instantiate a
       
        
         BluetoothDevice
        
       
       using a known MAC address, and create
 a
       
        
         BluetoothServerSocket
        
       
       to listen for connection requests from other
 devices, and start a scan for Bluetooth LE devices.
      
       To get a
       
        
         BluetoothAdapter
        
       
       representing the local Bluetooth
 adapter, when running on JELLY_BEAN_MR1 and below, call the
 static
       
        
         getDefaultAdapter()
        
       
       method; when running on JELLY_BEAN_MR2 and
 higher, retrieve it through
       
        
         getSystemService(String)
        
       
       with
       
        
         BLUETOOTH_SERVICE
        
       
       .
 Fundamentally, this is your starting point for all
 Bluetooth actions. Once you have the local adapter, you can get a set of
       
        
         BluetoothDevice
        
       
       objects representing all paired devices with
       
        
         getBondedDevices()
        
       
       ; start device discovery with
       
        
         startDiscovery()
        
       
       ; or create a
       
        
         BluetoothServerSocket
        
       
       to
 listen for incoming connection requests with
       
        
         listenUsingRfcommWithServiceRecord(String, UUID)
        
       
       ; or start a scan for
 Bluetooth LE devices with
       
        
         startLeScan(LeScanCallback)
        
       
       .
      
       
        Note:
       
       Most methods require the
       
        
         BLUETOOTH
        
       
       permission and some also require the
       
        
         BLUETOOTH_ADMIN
        
       
       permission.
       
For more information about using Bluetooth, read the Bluetooth developer guide.
| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 
          | 
        BluetoothAdapter.LeScanCallback | Callback interface used to deliver LE scan results. | |||||||||
| Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| String | ACTION_CONNECTION_STATE_CHANGED | Intent used to broadcast the change in connection state of the local Bluetooth adapter to a profile of the remote device. | |||||||||
| String | ACTION_DISCOVERY_FINISHED | Broadcast Action: The local Bluetooth adapter has finished the device discovery process. | |||||||||
| String | ACTION_DISCOVERY_STARTED | Broadcast Action: The local Bluetooth adapter has started the remote device discovery process. | |||||||||
| String | ACTION_LOCAL_NAME_CHANGED | Broadcast Action: The local Bluetooth adapter has changed its friendly Bluetooth name. | |||||||||
| String | ACTION_REQUEST_DISCOVERABLE | Activity Action: Show a system activity that requests discoverable mode. | |||||||||
| String | ACTION_REQUEST_ENABLE | Activity Action: Show a system activity that allows the user to turn on Bluetooth. | |||||||||
| String | ACTION_SCAN_MODE_CHANGED | Broadcast Action: Indicates the Bluetooth scan mode of the local Adapter has changed. | |||||||||
| String | ACTION_STATE_CHANGED | Broadcast Action: The state of the local Bluetooth adapter has been changed. | |||||||||
| int | ERROR | Sentinel error value for this class. | |||||||||
| String | EXTRA_CONNECTION_STATE | 
          Extra used by
          
           
            ACTION_CONNECTION_STATE_CHANGED
           
          
          This extra represents the current connection state.
          | 
        |||||||||
| String | EXTRA_DISCOVERABLE_DURATION | 
          Used as an optional int extra field in
          
           
            ACTION_REQUEST_DISCOVERABLE
           
          
          intents to request a specific duration
 for discoverability in seconds.
          | 
        |||||||||
| String | EXTRA_LOCAL_NAME | 
          Used as a String extra field in
          
           
            ACTION_LOCAL_NAME_CHANGED
           
          
          intents to request the local Bluetooth name.
          | 
        |||||||||
| String | EXTRA_PREVIOUS_CONNECTION_STATE | 
          Extra used by
          
           
            ACTION_CONNECTION_STATE_CHANGED
           
          
          This extra represents the previous connection state.
          | 
        |||||||||
| String | EXTRA_PREVIOUS_SCAN_MODE | 
          Used as an int extra field in
          
           
            ACTION_SCAN_MODE_CHANGED
           
          
          intents to request the previous scan mode.
          | 
        |||||||||
| String | EXTRA_PREVIOUS_STATE | 
          Used as an int extra field in
          
           
            ACTION_STATE_CHANGED
           
          
          intents to request the previous power state.
          | 
        |||||||||
| String | EXTRA_SCAN_MODE | 
          Used as an int extra field in
          
           
            ACTION_SCAN_MODE_CHANGED
           
          
          intents to request the current scan mode.
          | 
        |||||||||
| String | EXTRA_STATE | 
          Used as an int extra field in
          
           
            ACTION_STATE_CHANGED
           
          
          intents to request the current power state.
          | 
        |||||||||
| int | SCAN_MODE_CONNECTABLE | Indicates that inquiry scan is disabled, but page scan is enabled on the local Bluetooth adapter. | |||||||||
| int | SCAN_MODE_CONNECTABLE_DISCOVERABLE | Indicates that both inquiry scan and page scan are enabled on the local Bluetooth adapter. | |||||||||
| int | SCAN_MODE_NONE | Indicates that both inquiry scan and page scan are disabled on the local Bluetooth adapter. | |||||||||
| int | STATE_CONNECTED | The profile is in connected state | |||||||||
| int | STATE_CONNECTING | The profile is in connecting state | |||||||||
| int | STATE_DISCONNECTED | The profile is in disconnected state | |||||||||
| int | STATE_DISCONNECTING | The profile is in disconnecting state | |||||||||
| int | STATE_OFF | Indicates the local Bluetooth adapter is off. | |||||||||
| int | STATE_ON | Indicates the local Bluetooth adapter is on, and ready for use. | |||||||||
| int | STATE_TURNING_OFF | Indicates the local Bluetooth adapter is turning off. | |||||||||
| int | STATE_TURNING_ON | Indicates the local Bluetooth adapter is turning on. | |||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 
           | 
         
           
           Cancel the current device discovery process.
           
          | 
        ||||||||||
| 
           | 
         
           
           Validate a String Bluetooth address, such as "00:43:A8:23:10:F0"
            
         Alphabetic characters must be uppercase to be valid.  | 
        ||||||||||
| 
           | 
         
           
           Close the connection of the profile proxy to the Service.
           
          | 
        ||||||||||
| 
           | 
         
           
           Turn off the local Bluetooth adapter—do not use without explicit
 user action to turn off Bluetooth.
           
          | 
        ||||||||||
| 
           | 
         
           
           Turn on the local Bluetooth adapter—do not use without explicit
 user action to turn on Bluetooth.
           
          | 
        ||||||||||
| 
           | 
         
           
           Returns the hardware address of the local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Return the set of
            
         
            
             BluetoothDevice
            
           
           objects that are bonded
 (paired) to the local adapter.
           | 
        ||||||||||
| 
           | 
         
           
           Get a handle to the default local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Get the friendly Bluetooth name of the local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Get the current connection state of a profile.
           
          | 
        ||||||||||
| 
           | 
         
           
           Get the profile proxy object associated with the profile.
           
          | 
        ||||||||||
| 
           | 
         
           
           Get a
            
         
            
             BluetoothDevice
            
           
           object for the given Bluetooth hardware
 address.
           | 
        ||||||||||
| 
           | 
         
           
           Get a
            
         
            
             BluetoothDevice
            
           
           object for the given Bluetooth hardware
 address.
           | 
        ||||||||||
| 
           | 
         
           
           Get the current Bluetooth scan mode of the local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Get the current state of the local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Return true if the local Bluetooth adapter is currently in the device
 discovery process.
           
          | 
        ||||||||||
| 
           | 
         
           
           Return true if Bluetooth is currently enabled and ready for use.
           
          | 
        ||||||||||
| 
           | 
         
           
           Create a listening, insecure RFCOMM Bluetooth socket with Service Record.
           
          | 
        ||||||||||
| 
           | 
         
           
           Create a listening, secure RFCOMM Bluetooth socket with Service Record.
           
          | 
        ||||||||||
| 
           | 
         
           
           Set the friendly Bluetooth name of the local Bluetooth adapter.
           
          | 
        ||||||||||
| 
           | 
         
           
           Start the remote device discovery process.
           
          | 
        ||||||||||
| 
           | 
         
           
           Starts a scan for Bluetooth LE devices.
           
          | 
        ||||||||||
| 
           | 
         
           
           Starts a scan for Bluetooth LE devices, looking for devices that
 advertise given services.
           
          | 
        ||||||||||
| 
           | 
         
           
           Stops an ongoing Bluetooth LE device scan.
           
          | 
        ||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 
           | 
         
           
           Invoked when the garbage collector has detected that this instance is no longer reachable.
           
          | 
        ||||||||||
| 
          
           [Expand]
          
           
           Inherited Methods
           
          | 
        |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
          
            
          
          From class
          
           java.lang.Object
          
           | 
        |||||||||||
Intent used to broadcast the change in connection state of the local Bluetooth adapter to a profile of the remote device. When the adapter is not connected to any profiles of any remote devices and it attempts a connection to a profile this intent will sent. Once connected, this intent will not be sent for any more connection attempts to any profiles of any remote device. When the adapter disconnects from the last profile its connected to of any remote device, this intent will be sent.
This intent is useful for applications that are only concerned about whether the local adapter is connected to any profile of any device and are not really concerned about which profile. For example, an application which displays an icon to display whether Bluetooth is connected or not can use this intent.
         This intent will have 3 extras:
         
          
           EXTRA_CONNECTION_STATE
          
         
         - The current connection state.
         
          
           EXTRA_PREVIOUS_CONNECTION_STATE
          
         
         - The previous connection state.
         
          
           EXTRA_DEVICE
          
         
         - The remote device.
         
          
           EXTRA_CONNECTION_STATE
          
         
         or
         
          
           EXTRA_PREVIOUS_CONNECTION_STATE
          
         
         can be any of
         
          
           STATE_DISCONNECTED
          
         
         ,
         
          
           STATE_CONNECTING
          
         
         ,
         
          
           STATE_CONNECTED
          
         
         ,
         
          
           STATE_DISCONNECTING
          
         
         .
        
         Requires
         
          
           BLUETOOTH
          
         
         to receive.
        
Broadcast Action: The local Bluetooth adapter has finished the device discovery process.
         Requires
         
          
           BLUETOOTH
          
         
         to receive.
        
Broadcast Action: The local Bluetooth adapter has started the remote device discovery process.
This usually involves an inquiry scan of about 12 seconds, followed by a page scan of each new device to retrieve its Bluetooth name.
         Register for
         
          
           ACTION_FOUND
          
         
         to be notified as
 remote Bluetooth devices are found.
        
         Device discovery is a heavyweight procedure. New connections to
 remote Bluetooth devices should not be attempted while discovery is in
 progress, and existing connections will experience limited bandwidth
 and high latency. Use
         
          
           cancelDiscovery()
          
         
         to cancel an ongoing
 discovery.
        
         Requires
         
          
           BLUETOOTH
          
         
         to receive.
        
Broadcast Action: The local Bluetooth adapter has changed its friendly Bluetooth name.
This name is visible to remote Bluetooth devices.
         Always contains the extra field
         
          
           EXTRA_LOCAL_NAME
          
         
         containing
 the name.
        
         Requires
         
          
           BLUETOOTH
          
         
         to receive.
        
Activity Action: Show a system activity that requests discoverable mode. This activity will also request the user to turn on Bluetooth if it is not currently enabled.
         Discoverable mode is equivalent to
         
          
           SCAN_MODE_CONNECTABLE_DISCOVERABLE
          
         
         . It allows remote devices to see
 this Bluetooth adapter when they perform a discovery.
        
For privacy, Android is not discoverable by default.
         The sender of this Intent can optionally use extra field
         
          
           EXTRA_DISCOVERABLE_DURATION
          
         
         to request the duration of
 discoverability. Currently the default duration is 120 seconds, and
 maximum duration is capped at 300 seconds for each request.
        
         Notification of the result of this activity is posted using the
         
          
           onActivityResult(int, int, Intent)
          
         
         callback. The
         
          resultCode
         
         will be the duration (in seconds) of discoverability or
         
          
           RESULT_CANCELED
          
         
         if the user rejected
 discoverability or an error has occurred.
        
         Applications can also listen for
         
          
           ACTION_SCAN_MODE_CHANGED
          
         
         for global notification whenever the scan mode changes. For example, an
 application can be notified when the device has ended discoverability.
        
         Requires
         
          
           BLUETOOTH
          
         
        
Activity Action: Show a system activity that allows the user to turn on Bluetooth.
This system activity will return once Bluetooth has completed turning on, or the user has decided not to turn Bluetooth on.
         Notification of the result of this activity is posted using the
         
          
           onActivityResult(int, int, Intent)
          
         
         callback. The
         
          resultCode
         
         will be
         
          
           RESULT_OK
          
         
         if Bluetooth has been
 turned on or
         
          
           RESULT_CANCELED
          
         
         if the user
 has rejected the request or an error has occurred.
        
         Applications can also listen for
         
          
           ACTION_STATE_CHANGED
          
         
         for global notification whenever Bluetooth is turned on or off.
        
         Requires
         
          
           BLUETOOTH
          
         
        
Broadcast Action: Indicates the Bluetooth scan mode of the local Adapter has changed.
         Always contains the extra fields
         
          
           EXTRA_SCAN_MODE
          
         
         and
         
          
           EXTRA_PREVIOUS_SCAN_MODE
          
         
         containing the new and old scan modes
 respectively.
        
         Requires
         
          
           BLUETOOTH
          
         
        
Broadcast Action: The state of the local Bluetooth adapter has been changed.
For example, Bluetooth has been turned on or off.
         Always contains the extra fields
         
          
           EXTRA_STATE
          
         
         and
         
          
           EXTRA_PREVIOUS_STATE
          
         
         containing the new and old states
 respectively.
        
         Requires
         
          
           BLUETOOTH
          
         
         to receive.
        
Sentinel error value for this class. Guaranteed to not equal any other integer constant in this class. Provided as a convenience for functions that require a sentinel error value, for example:
         
          Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
 BluetoothAdapter.ERROR)
         
        
         Extra used by
         
          
           ACTION_CONNECTION_STATE_CHANGED
          
         
         This extra represents the current connection state.
        
         Used as an optional int extra field in
         
          
           ACTION_REQUEST_DISCOVERABLE
          
         
         intents to request a specific duration
 for discoverability in seconds. The current default is 120 seconds, and
 requests over 300 seconds will be capped. These values could change.
        
         Used as a String extra field in
         
          
           ACTION_LOCAL_NAME_CHANGED
          
         
         intents to request the local Bluetooth name.
        
         Extra used by
         
          
           ACTION_CONNECTION_STATE_CHANGED
          
         
         This extra represents the previous connection state.
        
         Used as an int extra field in
         
          
           ACTION_SCAN_MODE_CHANGED
          
         
         intents to request the previous scan mode. Possible values are:
         
          
           SCAN_MODE_NONE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE_DISCOVERABLE
          
         
         ,
        
         Used as an int extra field in
         
          
           ACTION_STATE_CHANGED
          
         
         intents to request the previous power state. Possible values are:
         
          
           STATE_OFF
          
         
         ,
         
          
           STATE_TURNING_ON
          
         
         ,
         
          
           STATE_ON
          
         
         ,
         
          
           STATE_TURNING_OFF
          
         
         ,
        
         Used as an int extra field in
         
          
           ACTION_SCAN_MODE_CHANGED
          
         
         intents to request the current scan mode. Possible values are:
         
          
           SCAN_MODE_NONE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE_DISCOVERABLE
          
         
         ,
        
         Used as an int extra field in
         
          
           ACTION_STATE_CHANGED
          
         
         intents to request the current power state. Possible values are:
         
          
           STATE_OFF
          
         
         ,
         
          
           STATE_TURNING_ON
          
         
         ,
         
          
           STATE_ON
          
         
         ,
         
          
           STATE_TURNING_OFF
          
         
         ,
        
Indicates that inquiry scan is disabled, but page scan is enabled on the local Bluetooth adapter. Therefore this device is not discoverable from remote Bluetooth devices, but is connectable from remote devices that have previously discovered this device.
Indicates that both inquiry scan and page scan are enabled on the local Bluetooth adapter. Therefore this device is both discoverable and connectable from remote Bluetooth devices.
Indicates that both inquiry scan and page scan are disabled on the local Bluetooth adapter. Therefore this device is neither discoverable nor connectable from remote Bluetooth devices.
The profile is in connected state
The profile is in connecting state
The profile is in disconnected state
The profile is in disconnecting state
Indicates the local Bluetooth adapter is off.
Indicates the local Bluetooth adapter is on, and ready for use.
Indicates the local Bluetooth adapter is turning off. Local clients should immediately attempt graceful disconnection of any remote links.
         Indicates the local Bluetooth adapter is turning on. However local
 clients should wait for
         
          
           STATE_ON
          
         
         before attempting to
 use the adapter.
        
Cancel the current device discovery process.
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
         .
        
         Because discovery is a heavyweight procedure for the Bluetooth
 adapter, this method should always be called before attempting to connect
 to a remote device with
         
          
           connect()
          
         
         . Discovery is not managed by
 the  Activity, but is run as a system service, so an application should
 always call cancel discovery even if it did not directly request a
 discovery, just to be sure.
        
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return false. After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
Validate a String Bluetooth address, such as "00:43:A8:23:10:F0"
Alphabetic characters must be uppercase to be valid.
| address | Bluetooth address as string | 
|---|
Close the connection of the profile proxy to the Service.
         Clients should call this when they are no longer using
 the proxy obtained from
         
          
           getProfileProxy(Context, BluetoothProfile.ServiceListener, int)
          
         
         .
 Profile can be one of
         
          
           HEALTH
          
         
         ,
         
          
           HEADSET
          
         
         or
         
          
           A2DP
          
         
        
| proxy | Profile proxy object | 
|---|
Turn off the local Bluetooth adapter—do not use without explicit user action to turn off Bluetooth.
This gracefully shuts down all Bluetooth connections, stops Bluetooth system services, and powers down the underlying Bluetooth hardware.
         
          Bluetooth should never be disabled without
 direct user consent
         
         . The
         
          
           disable()
          
         
         method is
 provided only for applications that include a user interface for changing
 system settings, such as a "power manager" app.
        
         This is an asynchronous call: it will return immediately, and
 clients should listen for
         
          
           ACTION_STATE_CHANGED
          
         
         to be notified of subsequent adapter state changes. If this call returns
 true, then the adapter state will immediately transition from
         
          
           STATE_ON
          
         
         to
         
          
           STATE_TURNING_OFF
          
         
         , and some time
 later transition to either
         
          
           STATE_OFF
          
         
         or
         
          
           STATE_ON
          
         
         . If this call returns false then there was an
 immediate problem that will prevent the adapter from being turned off -
 such as the adapter already being turned off.
        
         Requires the
         
          
           BLUETOOTH_ADMIN
          
         
         permission
        
Turn on the local Bluetooth adapter—do not use without explicit user action to turn on Bluetooth.
This powers on the underlying Bluetooth hardware, and starts all Bluetooth system services.
         
          Bluetooth should never be enabled without
 direct user consent
         
         . If you want to turn on Bluetooth in order
 to create a wireless connection, you should use the
         
          
           ACTION_REQUEST_ENABLE
          
         
         Intent, which will raise a dialog that requests
 user permission to turn on Bluetooth. The
         
          
           enable()
          
         
         method is
 provided only for applications that include a user interface for changing
 system settings, such as a "power manager" app.
        
         This is an asynchronous call: it will return immediately, and
 clients should listen for
         
          
           ACTION_STATE_CHANGED
          
         
         to be notified of subsequent adapter state changes. If this call returns
 true, then the adapter state will immediately transition from
         
          
           STATE_OFF
          
         
         to
         
          
           STATE_TURNING_ON
          
         
         , and some time
 later transition to either
         
          
           STATE_OFF
          
         
         or
         
          
           STATE_ON
          
         
         . If this call returns false then there was an
 immediate problem that will prevent the adapter from being turned on -
 such as Airplane mode, or the adapter is already turned on.
        
         Requires the
         
          
           BLUETOOTH_ADMIN
          
         
         permission
        
Returns the hardware address of the local Bluetooth adapter.
For example, "00:11:22:AA:BB:CC".
         Requires
         
          
           BLUETOOTH
          
         
        
         Return the set of
         
          
           BluetoothDevice
          
         
         objects that are bonded
 (paired) to the local adapter.
        
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return an empty set. After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
         Requires
         
          
           BLUETOOTH
          
         
         .
        
           
            BluetoothDevice
           
          
          , or null on error
         Get a handle to the default local Bluetooth adapter.
Currently Android only supports one Bluetooth adapter, but the API could be extended to support more. This will always return the default adapter.
Get the friendly Bluetooth name of the local Bluetooth adapter.
This name is visible to remote Bluetooth devices.
         Requires
         
          
           BLUETOOTH
          
         
        
         Get the current connection state of a profile.
 This function can be used to check whether the local Bluetooth adapter
 is connected to any remote device for a specific profile.
 Profile can be one of
         
          
           HEALTH
          
         
         ,
         
          
           HEADSET
          
         
         ,
         
          
           A2DP
          
         
         .
        
         Requires
         
          
           BLUETOOTH
          
         
         .
        
         Return value can be one of
         
          
           STATE_DISCONNECTED
          
         
         ,
         
          
           STATE_CONNECTING
          
         
         ,
         
          
           STATE_CONNECTED
          
         
         ,
         
          
           STATE_DISCONNECTING
          
         
        
Get the profile proxy object associated with the profile.
         Profile can be one of
         
          
           HEALTH
          
         
         ,
         
          
           HEADSET
          
         
         ,
         
          
           A2DP
          
         
         ,
         
          
           GATT
          
         
         , or
         
          
           GATT_SERVER
          
         
         . Clients must implement
         
          
           BluetoothProfile.ServiceListener
          
         
         to get notified of
 the connection status and to get the proxy object.
        
| context | Context of the application | 
|---|---|
| listener | The service Listener for connection callbacks. | 
| profile | 
           The Bluetooth profile; either
           
            
             HEALTH
            
           
           ,
           
            
             HEADSET
            
           
           or
           
            
             A2DP
            
           
           .
           | 
         
         Get a
         
          
           BluetoothDevice
          
         
         object for the given Bluetooth hardware
 address.
        
Valid Bluetooth hardware addresses must be 6 bytes. This method expects the address in network byte order (MSB first).
         A
         
          
           BluetoothDevice
          
         
         will always be returned for a valid
 hardware address, even if this adapter has never seen that device.
        
| address | Bluetooth MAC address (6 bytes) | 
|---|
| IllegalArgumentException | if address is invalid | 
|---|
         Get a
         
          
           BluetoothDevice
          
         
         object for the given Bluetooth hardware
 address.
        
         Valid Bluetooth hardware addresses must be upper case, in a format
 such as "00:11:22:33:AA:BB". The helper
         
          
           checkBluetoothAddress(String)
          
         
         is
 available to validate a Bluetooth address.
        
         A
         
          
           BluetoothDevice
          
         
         will always be returned for a valid
 hardware address, even if this adapter has never seen that device.
        
| address | valid Bluetooth MAC address | 
|---|
| IllegalArgumentException | if address is invalid | 
|---|
Get the current Bluetooth scan mode of the local Bluetooth adapter.
The Bluetooth scan mode determines if the local adapter is connectable and/or discoverable from remote Bluetooth devices.
         Possible values are:
         
          
           SCAN_MODE_NONE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE
          
         
         ,
         
          
           SCAN_MODE_CONNECTABLE_DISCOVERABLE
          
         
         .
        
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return
         
          
           SCAN_MODE_NONE
          
         
         . After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
         Requires
         
          
           BLUETOOTH
          
         
        
Get the current state of the local Bluetooth adapter.
         Possible return values are
         
          
           STATE_OFF
          
         
         ,
         
          
           STATE_TURNING_ON
          
         
         ,
         
          
           STATE_ON
          
         
         ,
         
          
           STATE_TURNING_OFF
          
         
         .
        
         Requires
         
          
           BLUETOOTH
          
         
        
Return true if the local Bluetooth adapter is currently in the device discovery process.
         Device discovery is a heavyweight procedure. New connections to
 remote Bluetooth devices should not be attempted while discovery is in
 progress, and existing connections will experience limited bandwidth
 and high latency. Use
         
          
           cancelDiscovery()
          
         
         to cancel an ongoing
 discovery.
        
         Applications can also register for
         
          
           ACTION_DISCOVERY_STARTED
          
         
         or
         
          
           ACTION_DISCOVERY_FINISHED
          
         
         to be notified when discovery
 starts or completes.
        
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return false. After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
         Requires
         
          
           BLUETOOTH
          
         
         .
        
Return true if Bluetooth is currently enabled and ready for use.
         Equivalent to:
         
          getBluetoothState() == STATE_ON
         
        
         Requires
         
          
           BLUETOOTH
          
         
        
Create a listening, insecure RFCOMM Bluetooth socket with Service Record.
         The link key is not required to be authenticated, i.e the communication may be
 vulnerable to Man In the Middle attacks. For Bluetooth 2.1 devices,
 the link will be encrypted, as encryption is mandartory.
 For legacy devices (pre Bluetooth 2.1 devices) the link will not
 be encrypted. Use
         
          
           listenUsingRfcommWithServiceRecord(String, UUID)
          
         
         , if an
 encrypted and authenticated communication channel is desired.
        
         Use
         
          
           accept()
          
         
         to retrieve incoming
 connections from a listening
         
          
           BluetoothServerSocket
          
         
         .
        
The system will assign an unused RFCOMM channel to listen on.
The system will also register a Service Discovery Protocol (SDP) record with the local SDP server containing the specified UUID, service name, and auto-assigned channel. Remote Bluetooth devices can use the same UUID to query our SDP server and discover which channel to connect to. This SDP record will be removed when this socket is closed, or if this application closes unexpectedly.
         Use
         
          
           createRfcommSocketToServiceRecord(UUID)
          
         
         to
 connect to this socket from another device using the same
         
          
           UUID
          
         
         .
        
         Requires
         
          
           BLUETOOTH
          
         
        
| name | service name for SDP record | 
|---|---|
| uuid | uuid for SDP record | 
| IOException | on error, for example Bluetooth not available, or insufficient permissions, or channel in use. | 
|---|
Create a listening, secure RFCOMM Bluetooth socket with Service Record.
A remote device connecting to this socket will be authenticated and communication on this socket will be encrypted.
         Use
         
          
           accept()
          
         
         to retrieve incoming
 connections from a listening
         
          
           BluetoothServerSocket
          
         
         .
        
The system will assign an unused RFCOMM channel to listen on.
The system will also register a Service Discovery Protocol (SDP) record with the local SDP server containing the specified UUID, service name, and auto-assigned channel. Remote Bluetooth devices can use the same UUID to query our SDP server and discover which channel to connect to. This SDP record will be removed when this socket is closed, or if this application closes unexpectedly.
         Use
         
          
           createRfcommSocketToServiceRecord(UUID)
          
         
         to
 connect to this socket from another device using the same
         
          
           UUID
          
         
         .
        
         Requires
         
          
           BLUETOOTH
          
         
        
| name | service name for SDP record | 
|---|---|
| uuid | uuid for SDP record | 
| IOException | on error, for example Bluetooth not available, or insufficient permissions, or channel in use. | 
|---|
Set the friendly Bluetooth name of the local Bluetooth adapter.
This name is visible to remote Bluetooth devices.
Valid Bluetooth names are a maximum of 248 bytes using UTF-8 encoding, although many remote devices can only display the first 40 characters, and some may be limited to just 20.
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return false. After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
        
| name | a valid Bluetooth name | 
|---|
Start the remote device discovery process.
The discovery process usually involves an inquiry scan of about 12 seconds, followed by a page scan of each new device to retrieve its Bluetooth name.
         This is an asynchronous call, it will return immediately. Register
 for
         
          
           ACTION_DISCOVERY_STARTED
          
         
         and
         
          
           ACTION_DISCOVERY_FINISHED
          
         
         intents to determine exactly when the
 discovery starts and completes. Register for
         
          
           ACTION_FOUND
          
         
         to be notified as remote Bluetooth devices
 are found.
        
         Device discovery is a heavyweight procedure. New connections to
 remote Bluetooth devices should not be attempted while discovery is in
 progress, and existing connections will experience limited bandwidth
 and high latency. Use
         
          
           cancelDiscovery()
          
         
         to cancel an ongoing
 discovery. Discovery is not managed by the Activity,
 but is run as a system service, so an application should always call
         
          
           cancelDiscovery()
          
         
         even if it
 did not directly request a discovery, just to be sure.
        
Device discovery will only find remote devices that are currently discoverable (inquiry scan enabled). Many Bluetooth devices are not discoverable by default, and need to be entered into a special mode.
         If Bluetooth state is not
         
          
           STATE_ON
          
         
         , this API
 will return false. After turning on Bluetooth,
 wait for
         
          
           ACTION_STATE_CHANGED
          
         
         with
         
          
           STATE_ON
          
         
         to get the updated value.
        
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
         .
        
Starts a scan for Bluetooth LE devices.
         Results of the scan are reported using the
         
          
           onLeScan(BluetoothDevice, int, byte[])
          
         
         callback.
        
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
         permission.
        
| callback | the callback LE scan results are delivered | 
|---|
Starts a scan for Bluetooth LE devices, looking for devices that advertise given services.
         Devices which advertise all specified services are reported using the
         
          
           onLeScan(BluetoothDevice, int, byte[])
          
         
         callback.
        
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
         permission.
        
| serviceUuids | Array of services to look for | 
|---|---|
| callback | the callback LE scan results are delivered | 
Stops an ongoing Bluetooth LE device scan.
         Requires
         
          
           BLUETOOTH_ADMIN
          
         
         permission.
        
| callback | used to identify which scan to stop must be the same handle used to start the scan | 
|---|
Invoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.
         Note that objects that override
         
          finalize
         
         are significantly more expensive than
 objects that don't. Finalizers may be run a long time after the object is no longer
 reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup.
 Note also that finalizers are run on a single VM-wide finalizer thread,
 so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary
 for a class that has a native peer and needs to call a native method to destroy that peer.
 Even then, it's better to provide an explicit
         
          close
         
         method (and implement
         
          
           Closeable
          
         
         ), and insist that callers manually dispose of instances. This
 works well for something like files, but less well for something like a
         
          BigInteger
         
         where typical calling code would have to deal with lots of temporaries. Unfortunately,
 code that creates lots of temporaries is the worst kind of code from the point of view of
 the single finalizer thread.
        
         If you
         
          must
         
         use finalizers, consider at least providing your own
         
          
           ReferenceQueue
          
         
         and having your own thread process that queue.
        
         Unlike constructors, finalizers are not automatically chained. You are responsible for
 calling
         
          super.finalize()
         
         yourself.
        
Uncaught exceptions thrown by finalizers are ignored and do not terminate the finalizer thread. See Effective Java Item 7, "Avoid finalizers" for more.
| Throwable | 
|---|