org.bluez.Device1 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.interfaces.DBusInterface;
/**
* File generated - 2023-02-20.
* Based on bluez Documentation: device-api.txt.
*
* Service: org.bluez
* Interface: org.bluez.Device1
*
* Object path:
* [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
*
* Supported properties:
*
* string Address [readonly]
*
* The Bluetooth device address of the remote device.
*
* string AddressType [readonly]
*
* The Bluetooth device Address Type. For dual-mode and
* BR/EDR only devices this defaults to "public". Single
* mode LE devices may have either value. If remote device
* uses privacy than before pairing this represents address
* type used for connection and Identity Address after
* pairing.
*
* Possible values:
* "public" - Public address
* "random" - Random address
*
* string Name [readonly, optional]
*
* The Bluetooth remote name. This value can not be
* changed. Use the Alias property instead.
*
* This value is only present for completeness. It is
* better to always use the Alias property when
* displaying the devices name.
*
* If the Alias property is unset, it will reflect
* this value which makes it more convenient.
*
* string Icon [readonly, optional]
*
* Proposed icon name according to the freedesktop.org
* icon naming specification.
*
* uint32 Class [readonly, optional]
*
* The Bluetooth class of device of the remote device.
*
* uint16 Appearance [readonly, optional]
*
* External appearance of device, as found on GAP service.
*
* array{string} UUIDs [readonly, optional]
*
* List of 128-bit UUIDs that represents the available
* remote services.
*
* boolean Paired [readonly]
*
* Indicates if the remote device is paired. Paired means
* the pairing process where devices exchange the
* information to establish an encrypted connection has
* been completed.
*
* boolean Bonded [readonly]
*
* Indicates if the remote device is bonded. Bonded means
* the information exchanged on pairing process has been
* stored and will be persisted.
*
* boolean Connected [readonly]
*
* Indicates if the remote device is currently connected.
* A PropertiesChanged signal indicate changes to this
* status.
*
* boolean Trusted [readwrite]
*
* Indicates if the remote is seen as trusted. This
* setting can be changed by the application.
*
* boolean Blocked [readwrite]
*
* If set to true any incoming connections from the
* device will be immediately rejected. Any device
* drivers will also be removed and no new ones will
* be probed as long as the device is blocked.
*
* boolean WakeAllowed [readwrite]
*
* If set to true this device will be allowed to wake the
* host from system suspend.
*
* string Alias [readwrite]
*
* The name alias for the remote device. The alias can
* be used to have a different friendly name for the
* remote device.
*
* In case no alias is set, it will return the remote
* device name. Setting an empty string as alias will
* convert it back to the remote device name.
*
* When resetting the alias with an empty string, the
* property will default back to the remote name.
*
* object Adapter [readonly]
*
* The object path of the adapter the device belongs to.
*
* boolean LegacyPairing [readonly]
*
* Set to true if the device only supports the pre-2.1
* pairing mechanism. This property is useful during
* device discovery to anticipate whether legacy or
* simple pairing will occur if pairing is initiated.
*
* Note that this property can exhibit false-positives
* in the case of Bluetooth 2.1 (or newer) devices that
* have disabled Extended Inquiry Response support.
*
* string Modalias [readonly, optional]
*
* Remote Device ID information in modalias format
* used by the kernel and udev.
*
* int16 RSSI [readonly, optional]
*
* Received Signal Strength Indicator of the remote
* device (inquiry or advertising).
*
* int16 TxPower [readonly, optional]
*
* Advertised transmitted power level (inquiry or
* advertising).
*
* dict ManufacturerData [readonly, optional]
*
* Manufacturer specific advertisement data. Keys are
* 16 bits Manufacturer ID followed by its byte array
* value.
*
* dict ServiceData [readonly, optional]
*
* Service advertisement data. Keys are the UUIDs in
* string format followed by its byte array value.
*
* bool ServicesResolved [readonly]
*
* Indicate whether or not service discovery has been
* resolved.
*
* array{byte} AdvertisingFlags [readonly, experimental]
*
* The Advertising Data Flags of the remote device.
*
* dict AdvertisingData [readonly, experimental]
*
* The Advertising Data of the remote device. Keys are
* are 8 bits AD Type followed by data as byte array.
*
* Note: Only types considered safe to be handled by
* application are exposed.
*
* Possible values:
* <type> <byte array>
* ...
*
* Example:
* <Transport Discovery> <Organization Flags...>
* 0x26 0x01 0x01...
*
*/
public interface Device1 extends DBusInterface {
/**
* From bluez documentation:
*
* This is a generic method to connect any profiles
* the remote device supports that can be connected
* to and have been flagged as auto-connectable on
* our side. If only subset of profiles is already
* connected it will try to connect currently disconnected
* ones.
*
* If at least one profile was connected successfully this
* method will indicate success.
*
* For dual-mode devices only one bearer is connected at
* time, the conditions are in the following order:
*
* 1. Connect the disconnected bearer if already
* connected.
*
* 2. Connect first the bonded bearer. If no
* bearers are bonded or both are skip and check
* latest seen bearer.
*
* 3. Connect last seen bearer, in case the
* timestamps are the same BR/EDR takes
* precedence.
*
*
* @throws BluezNotReadyException when bluez not ready
* @throws BluezFailedException on failure
* @throws BluezInProgressException when operation already in progress
* @throws BluezAlreadyConnectedException when already connected
*/
void Connect() throws BluezNotReadyException, BluezFailedException, BluezInProgressException, BluezAlreadyConnectedException;
/**
* From bluez documentation:
*
* This method gracefully disconnects all connected
* profiles and then terminates low-level ACL connection.
*
* ACL connection will be terminated even if some profiles
* were not disconnected properly e.g. due to misbehaving
* device.
*
* This method can be also used to cancel a preceding
* Connect call before a reply to it has been received.
*
* For non-trusted devices connected over LE bearer calling
* this method will disable incoming connections until
* Connect method is called again.
*
*
* @throws BluezNotConnectedException when bluez not connected
*/
void Disconnect() throws BluezNotConnectedException;
/**
* From bluez documentation:
*
* This method connects a specific profile of this
* device. The UUID provided is the remote service
* UUID for the profile.
*
*
* @param _uuid uuid
*
* @throws BluezFailedException on failure
* @throws BluezInProgressException when operation already in progress
* @throws BluezInvalidArgumentsException when argument is invalid
* @throws BluezNotAvailableException when not available
* @throws BluezNotReadyException when bluez not ready
*/
void ConnectProfile(String _uuid) throws BluezFailedException, BluezInProgressException, BluezInvalidArgumentsException, BluezNotAvailableException, BluezNotReadyException;
/**
* From bluez documentation:
*
* This method disconnects a specific profile of
* this device. The profile needs to be registered
* client profile.
*
* There is no connection tracking for a profile, so
* as long as the profile is registered this will always
* succeed.
*
*
* @param _uuid uuid
*
* @throws BluezFailedException on failure
* @throws BluezInProgressException when operation already in progress
* @throws BluezInvalidArgumentsException when argument is invalid
* @throws BluezNotSupportedException when operation not supported
*/
void DisconnectProfile(String _uuid) throws BluezFailedException, BluezInProgressException, BluezInvalidArgumentsException, BluezNotSupportedException;
/**
* From bluez documentation:
*
* This method will connect to the remote device,
* initiate pairing and then retrieve all SDP records
* (or GATT primary services).
*
* If the application has registered its own agent,
* then that specific agent will be used. Otherwise
* it will use the default agent.
*
* Only for applications like a pairing wizard it
* would make sense to have its own agent. In almost
* all other cases the default agent will handle
* this just fine.
*
* In case there is no application agent and also
* no default agent present, this method will fail.
*
*
* @throws BluezInvalidArgumentsException when argument is invalid
* @throws BluezFailedException on failure
* @throws BluezAlreadyExistsException when item already exists
* @throws BluezAuthenticationCanceledException on BluezAuthenticationCanceledException
* @throws BluezAuthenticationFailedException when authentication failed
* @throws BluezAuthenticationRejectedException on BluezAuthenticationRejectedException
* @throws BluezAuthenticationTimeoutException when authentication timed out
* @throws BluezConnectionAttemptFailedException when connection attempt failed
*/
void Pair() throws BluezInvalidArgumentsException, BluezFailedException, BluezAlreadyExistsException, BluezAuthenticationCanceledException, BluezAuthenticationFailedException, BluezAuthenticationRejectedException, BluezAuthenticationTimeoutException, BluezConnectionAttemptFailedException;
/**
* From bluez documentation:
*
* This method can be used to cancel a pairing
* operation initiated by the Pair method.
*
*
* @throws BluezDoesNotExistException when item does not exist
* @throws BluezFailedException on failure
*/
void CancelPairing() throws BluezDoesNotExistException, BluezFailedException;
}