org.bluez.Adapter1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bluez-dbus Show documentation
Show all versions of bluez-dbus Show documentation
Java native bluetooth library which uses bluez via dbus (linux only)
The newest version!
package org.bluez;
import org.bluez.exceptions.*;
import org.freedesktop.dbus.DBusPath;
import org.freedesktop.dbus.interfaces.DBusInterface;
import org.freedesktop.dbus.types.Variant;
import java.util.Map;
/**
* File generated - 2023-02-20.
* Based on bluez Documentation: adapter-api.txt.
*
* Service: org.bluez
* Interface: org.bluez.Adapter1
*
* Object path:
* [variable prefix]/{hci0,hci1,...}
*
* Supported properties:
*
* string Address [readonly]
*
* The Bluetooth device address.
*
* string AddressType [readonly]
*
* The Bluetooth Address Type. For dual-mode and BR/EDR
* only adapter this defaults to "public". Single mode LE
* adapters may have either value. With privacy enabled
* this contains type of Identity Address and not type of
* address used for connection.
*
* Possible values:
* "public" - Public address
* "random" - Random address
*
* string Name [readonly]
*
* The Bluetooth system name (pretty hostname).
*
* This property is either a static system default
* or controlled by an external daemon providing
* access to the pretty hostname configuration.
*
* string Alias [readwrite]
*
* The Bluetooth friendly name. This value can be
* changed.
*
* In case no alias is set, it will return the system
* provided name. Setting an empty string as alias will
* convert it back to the system provided name.
*
* When resetting the alias with an empty string, the
* property will default back to system name.
*
* On a well configured system, this property never
* needs to be changed since it defaults to the system
* name and provides the pretty hostname. Only if the
* local name needs to be different from the pretty
* hostname, this property should be used as last
* resort.
*
* uint32 Class [readonly]
*
* The Bluetooth class of device.
*
* This property represents the value that is either
* automatically configured by DMI/ACPI information
* or provided as static configuration.
*
* boolean Powered [readwrite]
*
* Switch an adapter on or off. This will also set the
* appropriate connectable state of the controller.
*
* The value of this property is not persistent. After
* restart or unplugging of the adapter it will reset
* back to false.
*
* string PowerState [readonly, experimental]
*
* The power state of an adapter.
*
* The power state will show whether the adapter is
* turning off, or turning on, as well as being on
* or off.
*
* Possible values:
* "on" - powered on
* "off" - powered off
* "off-enabling" - transitioning from "off" to "on"
* "on-disabling" - transitioning from "on" to "off"
* "off-blocked" - blocked by rfkill
*
* boolean Discoverable [readwrite]
*
* Switch an adapter to discoverable or non-discoverable
* to either make it visible or hide it. This is a global
* setting and should only be used by the settings
* application.
*
* If the DiscoverableTimeout is set to a non-zero
* value then the system will set this value back to
* false after the timer expired.
*
* In case the adapter is switched off, setting this
* value will fail.
*
* When changing the Powered property the new state of
* this property will be updated via a PropertiesChanged
* signal.
*
* For any new adapter this settings defaults to false.
*
* boolean Pairable [readwrite]
*
* Switch an adapter to pairable or non-pairable. This is
* a global setting and should only be used by the
* settings application.
*
* Note that this property only affects incoming pairing
* requests.
*
* For any new adapter this settings defaults to true.
*
* uint32 PairableTimeout [readwrite]
*
* The pairable timeout in seconds. A value of zero
* means that the timeout is disabled and it will stay in
* pairable mode forever.
*
* The default value for pairable timeout should be
* disabled (value 0).
*
* uint32 DiscoverableTimeout [readwrite]
*
* The discoverable timeout in seconds. A value of zero
* means that the timeout is disabled and it will stay in
* discoverable/limited mode forever.
*
* The default value for the discoverable timeout should
* be 180 seconds (3 minutes).
*
* boolean Discovering [readonly]
*
* Indicates that a device discovery procedure is active.
*
* array{string} UUIDs [readonly]
*
* List of 128-bit UUIDs that represents the available
* local services.
*
* string Modalias [readonly, optional]
*
* Local Device ID information in modalias format
* used by the kernel and udev.
*
* array{string} Roles [readonly]
*
* List of supported roles. Possible values:
* "central": Supports the central role.
* "peripheral": Supports the peripheral role.
* "central-peripheral": Supports both roles
* concurrently.
*
* array{string} ExperimentalFeatures [readonly, optional]
*
* List of 128-bit UUIDs that represents the experimental
* features currently enabled.
*
*/
public interface Adapter1 extends DBusInterface {
/**
* From bluez documentation:
*
* This method starts the device discovery session. This
* includes an inquiry procedure and remote device name
* resolving. Use StopDiscovery to release the sessions
* acquired.
*
* This process will start creating Device objects as
* new devices are discovered.
*
* During discovery RSSI delta-threshold is imposed.
*
* Each client can request a single device discovery session
* per adapter.
*
*
* @throws BluezNotReadyException when bluez not ready
* @throws BluezFailedException on failure
* @throws BluezInProgressException when operation already in progress
*/
void StartDiscovery() throws BluezNotReadyException, BluezFailedException, BluezInProgressException;
/**
* From bluez documentation:
*
* This method will cancel any previous StartDiscovery
* transaction.
*
* Note that a discovery procedure is shared between all
* discovery sessions thus calling StopDiscovery will only
* release a single session and discovery will stop when
* all sessions from all clients have finished.
*
*
* @throws BluezNotReadyException when bluez not ready
* @throws BluezFailedException on failure
* @throws BluezNotAuthorizedException when not authorized
*/
void StopDiscovery() throws BluezNotReadyException, BluezFailedException, BluezNotAuthorizedException;
/**
* From bluez documentation:
*
* This removes the remote device object at the given
* path. It will remove also the pairing information.
*
*
* @param _device device
*
* @throws BluezInvalidArgumentsException when argument is invalid
* @throws BluezFailedException on failure
*/
void RemoveDevice(DBusPath _device) throws BluezInvalidArgumentsException, BluezFailedException;
/**
* From bluez documentation:
*
* This method sets the device discovery filter for the
* caller. When this method is called with no filter
* parameter, filter is removed.
*
* Parameters that may be set in the filter dictionary
* include the following:
*
* array{string} UUIDs
*
* Filter by service UUIDs, empty means match
* _any_ UUID.
*
* When a remote device is found that advertises
* any UUID from UUIDs, it will be reported if:
* - Pathloss and RSSI are both empty.
* - only Pathloss param is set, device advertise
* TX pwer, and computed pathloss is less than
* Pathloss param.
* - only RSSI param is set, and received RSSI is
* higher than RSSI param.
*
* int16 RSSI
*
* RSSI threshold value.
*
* PropertiesChanged signals will be emitted
* for already existing Device objects, with
* updated RSSI value. If one or more discovery
* filters have been set, the RSSI delta-threshold,
* that is imposed by StartDiscovery by default,
* will not be applied.
*
* uint16 Pathloss
*
* Pathloss threshold value.
*
* PropertiesChanged signals will be emitted
* for already existing Device objects, with
* updated Pathloss value.
*
* string Transport (Default "auto")
*
* Transport parameter determines the type of
* scan.
*
* Possible values:
* "auto" - interleaved scan
* "bredr" - BR/EDR inquiry
* "le" - LE scan only
*
* If "le" or "bredr" Transport is requested,
* and the controller doesn't support it,
* org.bluez.Error.Failed error will be returned.
* If "auto" transport is requested, scan will use
* LE, BREDR, or both, depending on what's
* currently enabled on the controller.
*
* bool DuplicateData (Default: true)
*
* Disables duplicate detection of advertisement
* data.
*
* When enabled PropertiesChanged signals will be
* generated for either ManufacturerData and
* ServiceData everytime they are discovered.
*
* bool Discoverable (Default: false)
*
* Make adapter discoverable while discovering,
* if the adapter is already discoverable setting
* this filter won't do anything.
*
* string Pattern (Default: none)
*
* Discover devices where the pattern matches
* either the prefix of the address or
* device name which is convenient way to limited
* the number of device objects created during a
* discovery.
*
* When set disregards device discoverable flags.
*
* Note: The pattern matching is ignored if there
* are other client that don't set any pattern as
* it work as a logical OR, also setting empty
* string "" pattern will match any device found.
*
* When discovery filter is set, Device objects will be
* created as new devices with matching criteria are
* discovered regardless of they are connectable or
* discoverable which enables listening to
* non-connectable and non-discoverable devices.
*
* When multiple clients call SetDiscoveryFilter, their
* filters are internally merged, and notifications about
* new devices are sent to all clients. Therefore, each
* client must check that device updates actually match
* its filter.
*
* When SetDiscoveryFilter is called multiple times by the
* same client, last filter passed will be active for
* given client.
*
* SetDiscoveryFilter can be called before StartDiscovery.
* It is useful when client will create first discovery
* session, to ensure that proper scan will be started
* right after call to StartDiscovery.
*
*
* @param _filter filter
*
* @throws BluezNotReadyException when bluez not ready
* @throws BluezNotSupportedException when operation not supported
* @throws BluezFailedException on failure
*/
void SetDiscoveryFilter(Map> _filter) throws BluezNotReadyException, BluezNotSupportedException, BluezFailedException;
/**
* From bluez documentation:
*
* Return available filters that can be given to
* SetDiscoveryFilter.
*
*
* @return String[] - maybe null
*/
String[] GetDiscoveryFilters();
/**
* From bluez documentation:
*
* This method connects to device without need of
* performing General Discovery. Connection mechanism is
* similar to Connect method from Device1 interface with
* exception that this method returns success when physical
* connection is established. After this method returns,
* services discovery will continue and any supported
* profile will be connected. There is no need for calling
* Connect on Device1 after this call. If connection was
* successful this method returns object path to created
* device object.
*
* Parameters that may be set in the filter dictionary
* include the following:
*
* string Address
*
* The Bluetooth device address of the remote
* device. This parameter is mandatory.
*
* string AddressType
*
* The Bluetooth device Address Type. This is
* address type that should be used for initial
* connection. If this parameter is not present
* BR/EDR device is created.
*
* Possible values:
* "public" - Public address
* "random" - Random address
*
*
* @param _properties properties
*
* @return DBusPath - maybe null
*
* @throws BluezInvalidArgumentsException when argument is invalid
* @throws BluezAlreadyExistsException when item already exists
* @throws BluezNotSupportedException when operation not supported
* @throws BluezNotReadyException when bluez not ready
* @throws BluezFailedException on failure
*/
DBusPath ConnectDevice(Map> _properties) throws BluezInvalidArgumentsException, BluezAlreadyExistsException, BluezNotSupportedException, BluezNotReadyException, BluezFailedException;
}