D-Bus интерфейс Device1
Интерфейс позволяет управлять подключением профилей и сопряжением устройств.
Шина: | системная |
Служба: | org.bluez |
Объект: | [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX |
Интерфейс: | org.bluez.Device1 |
Свойства
- Adapter : object [только для чтения]
- Address : string [только для чтения]
- AddressType : string [только для чтения]
- AdvertisingData : dict [только для чтения, экспериментально]
- AdvertisingFlags : array{byte} [только для чтения, экспериментально]
- Alias : string
- Appearance : uint16 [только для чтения, опционально]
- Blocked : boolean
- Bonded : boolean [только для чтения]
- Class : uint32 [только для чтения, опционально]
- Connected : boolean [только для чтения]
- Icon : string [только для чтения, опционально]
- LegacyPairing : boolean [только для чтения]
- ManufacturerData : dict
- Modalias : string [только для чтения, опционально]
- Name : string [только для чтения, опционально]
- Paired : boolean [только для чтения]
- RSSI : uint16 [только для чтения, опционально]
- ServiceData : dict [только для чтения, опционально]
- ServicesResolved : boolean [только для чтения]
- Trusted : boolean
- TxPower : uint16 [только для чтения, опционально]
- UUIDs : array{string} [только для чтения, опционально]
- WakeAllowed : boolean
Методы
- CancelPairing()
- Connect()
- ConnectProfile(string uuid)
- Disconnect()
- DisconnectProfile(string uuid)
- Pair()
Подробное описание
Интерфейс содержит методы для подключения и отключения профилей и управления сопряжением, а также свойства, предоставляющие информацию о подключённых устройствах.
Описание свойств
Adapter : object [только для чтения]
Путь к объекту адаптера, которому принадлежит устройство.
Address : string [только для чтения]
Адрес Bluetooth-устройства.
AddressType : string [только для чтения]
Тип адреса Bluetooth.
Для адаптера с двумя режимами и адаптера, поддерживающего только BR/EDR
по умолчанию используется значение public
.
Адаптеры LE с одним режимом могут иметь любое значение.
При включённом конфиденциальном режиме он содержит тип идентификационного адреса,
а не тип адреса, используемого для подключения.
Возможные значения:
public
— публичный адрес;random
— случайный адрес.
AdvertisingData : dict [только для чтения, экспериментально]
Публичные данные удалённого устройства. Ключи представляют собой 8-битный тип AD, за которым следуют данные в виде массива байтов.
Примечание. Предоставляются только те типы, которые считаются безопасными для обработки приложением.
Возможные значения:
<тип> <байтовый массив>
...
Пример:
<Transport Discovery> <Organization Flags...>
0x26 0x01 0x01...
AdvertisingFlags : array{byte} [только для чтения, экспериментально]
Флаги публичных данных удалённого устройства.
Alias : string
Псевдоним для Bluetooth-соединения. Это значение можно изменить.
Если псевдоним не установлен, будет возвращено предоставленное системой имя. Установка пустой строки в качестве псевдонима преобразует её обратно в имя, предоставленное системой.
В хорошо сконфигурированной системе это свойство никогда не нужно изменять, так как по умолчанию оно эквивалентно имени системы и предоставляет красивое имя хоста. Это свойство следует использовать, только если локальное имя должно отличаться от красивого имени хоста.
Appearance : uint16 [только для чтения, опционально]
Внешний вид устройства, как указано в сервисе GAP.
Blocked : boolean
Если установлено значение true, любые входящие соединения будут немедленно отклонены. Любые драйверы устройств также будут удалены, а новые не будут проверяться, пока устройство заблокировано.
Bonded : boolean [только для чтения]
Указывает, привязано ли удалённое устройство. Bonded означает, что информация, которой обменивались в процессе сопряжения, была сохранена и будет сохранена.
Class : uint32 [только для чтения, опционально]
Класс Bluetooth-устройства.
Connected : boolean [только для чтения]
Указывает, подключено ли в данный момент удалённое устройство.
Сигнал PropertiesChanged
указывает на изменение этого состояния.
Icon : string [только для чтения, опционально]
Предлагаемое имя значка в соответствии со спецификацией именования значков freedesktop.org.
LegacyPairing : boolean [только для чтения]
True означает, что устройство поддерживает только механизм сопряжения до версии 2.1. Это свойство полезно во время обнаружения устройств, чтобы предвидеть, произойдёт ли устаревшее или простое сопряжение, если сопряжение будет инициировано.
Следует обратить внимание, что это свойство может показывать ложные срабатывания в случае устройств Bluetooth 2.1 (или новее), которые отключили поддержку расширенного ответа на запрос.
ManufacturerData : dict
Публичные данные производителя. Ключи представляют собой 16-битный идентификатор производителя, за которым следует его значение в виде массива байтов.
Modalias : string [только для чтения, опционально]
Информация об идентификаторе удалённого устройства в формате modalias, используемом ядром и udev.
Name : string [только для чтения, опционально]
Имя удалённого Bluetooth-устройства.
Его значение не может быть изменено.
Для указания имени следует использовать свойство Alias
.
Свойство присутствует только для полноты.
Лучше всегда использовать свойство Alias
при отображении имени устройства.
Если свойство Alias не установлено, оно будет отражать значение Name
,
что делает его более удобным.
Paired : boolean [только для чтения]
Сопряжено ли удалённое устройство.
Paired означает, что процесс сопряжения, в ходе которого устройства обмениваются информацией для установления зашифрованного соединения, завершён.
RSSI : uint16 [только для чтения, опционально]
Индикатор уровня принимаемого сигнала удалённого устройства (запрос или публичные данные).
ServiceData : dict [только для чтения, опционально]
Публичные данные службы. Ключи — это UUID в строковом формате, за которыми следует значение в виде массива байтов.
ServicesResolved : boolean [только для чтения]
Разрешено ли обнаружение службы.
Trusted : boolean
Считается ли удалённое устройство доверенным. Этот параметр приложение может менять.
TxPower : uint16 [только для чтения, опционально]
Объявленный уровень передаваемой мощности (запроса или публичных данных).
UUIDs : array{string} [только для чтения, опционально]
Список 128-битных UUID, представляющих доступные удалённые службы.
WakeAllowed : boolean
Если установлено значение true
, этому устройству будет разрешено вывести хост
из режима ожидания системы.
Описание методов
CancelPairing()
Метод можно использовать для отмены операции сопряжения, инициированной Pair
.
Возможные ошибки:
org.bluez.Error.DoesNotExist
,org.bluez.Error.Failed
.
Connect()
Общий метод для подключения любых профилей, поддерживаемых удалённым устройством, которые могут быть подключены и помечены как автоматически подключаемые на этой стороне. Если уже подключено только подмножество профилей, метод попытается подключить те, которые в данный момент отключены.
Если хотя бы один профиль был успешно подключён, метод будет считаться успешно сработавшим.
Для устройств с двумя режимами одновременно подключается только один носитель, условия подключения проверяются в следующем порядке:
- Подключить отключённый носитель, если он уже был ранее подключён.
- Подключить сначала привязанный носитель. Если ни один носитель не привязан или оба пропущены, проверить последний увиденный носитель.
- Подключить последний увиденный носитель, если временные метки совпадают. BR/EDR имеет приоритет.
Возможные ошибки:
org.bluez.Error.NotReady
,org.bluez.Error.Failed org.bluez.Error.InProgress
,org.bluez.Error.AlreadyConnected
.
ConnectProfile(string uuid)
Метод подключает заданный профиль этого устройства. Предоставленный UUID — это UUID удалённой службы для профиля.
Возможные ошибки:
org.bluez.Error.Failed
,org.bluez.Error.InProgress
,org.bluez.Error.InvalidArguments
,org.bluez.Error.NotAvailable
,org.bluez.Error.NotReady
.
Disconnect()
Метод вежливо отключает все подключённые профили, а затем завершает низкоуровневое соединение ACL. Соединение ACL будет прервано, даже если некоторые профили не были отключены должным образом, например, из-за неправильного поведения устройства.
Метод также можно использовать для отмены предыдущего вызова Connect
до получения ответа на него.
Для ненадёжных устройств, подключённых через канал LE, вызов этого метода отключит
входящие подключения до тех пор, пока метод Connect
не будет вызван снова.
Возможные ошибки:
org.bluez.Error.NotConnected
.
DisconnectProfile(string uuid)
Метод отключает заданный профиль этого устройства. Профиль должен быть зарегистрированным профилем клиента.
Для профиля нет отслеживания соединения, поэтому, пока профиль зарегистрирован, результат всегда будет считаться успешным.
Возможные ошибки:
org.bluez.Error.Failed
,org.bluez.Error.InProgress
,org.bluez.Error.InvalidArguments
,org.bluez.Error.NotSupported
.
Pair()
Метод подключается к удалённому устройству, инициирует сопряжение, а затем извлекает все записи SDP (или первичные службы GATT).
Если приложение зарегистрировало собственный агент, то будет использоваться именно он. В противном случае оно будет использовать агента по умолчанию.
Только такое приложение, как мастер сопряжения, должно регистрировать собственного агента. Почти во всех других случаях агент по умолчанию прекрасно справится с работой.
В случае отсутствия агента приложения, а также агента по умолчанию, метод не работает.
Возможные ошибки:
org.bluez.Error.InvalidArguments
,org.bluez.Error.Failed
,org.bluez.Error.AlreadyExists
,org.bluez.Error.AuthenticationCanceled
,org.bluez.Error.AuthenticationFailed
,org.bluez.Error.AuthenticationRejected
,org.bluez.Error.AuthenticationTimeout
,org.bluez.Error.ConnectionAttemptFailed
.