Device interface

BlueZ D-Bus Device API description

Copyright (C) 2004-2008  Marcel Holtmann <>
Copyright (C) 2005-2006  Johan Hedberg <>
Copyright (C) 2005-2006  Claudio Takahasi <>
Copyright (C) 2006-2007  Luiz von Dentz <>

Device hierarchy

Service		org.bluez
Interface	org.bluez.Device
Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX

Methods		dict GetProperties()

			Returns all properties for the device. See the
			properties section for available properties.

			Possible Errors: org.bluez.Error.DoesNotExist

		void SetProperty(string name, variant value)

			Changes the value of the specified property. Only
			properties that are listed a read-write are changeable.
			On success this will emit a PropertyChanged signal.

			Possible Errors: org.bluez.Error.DoesNotExist

		dict DiscoverServices(string pattern)

			This method starts the service discovery to retrieve
			remote service records. The pattern parameter can
			be used to specify specific UUIDs. And empty string
			will look for the public browse group.

			The return value is a dictionary with the record
			handles as keys and the service record in XML format
			as values. The key is uint32 and the value a string
			for this dictionary.

			Possible errors: org.bluez.Error.NotReady

		void CancelDiscovery()

			This method will cancel any previous DiscoverServices

			Possible errors: org.bluez.Error.NotReady

		void Disconnect()

			This method disconnects a specific remote device by
			terminating the low-level ACL connection. The use of
			this method should be restricted to administrator

			A DisconnectRequested signal will be sent and the
			actual disconnection will only happen 2 seconds later.
			This enables upper-level applications to terminate
			their connections gracefully before the ACL connection
			is terminated.

			Possible errors: org.bluez.Error.NotConnected

		array{object} ListNodes()

			Returns list of device node object paths.

			Possible errors: org.bluez.Error.InvalidArguments

		object CreateNode(string uuid)

			Creates a persistent device node binding with a
			remote device. The actual support for the specified
			UUID depends if the device driver has support for
			persistent binding. At the moment only RFCOMM TTY
			nodes are supported.

			Possible errors: org.bluez.Error.InvalidArguments

		void RemoveNode(object node)

			Removes a persistent device node binding.

			Possible errors: org.bluez.Error.InvalidArguments

Signals		PropertyChanged(string name, variant value)

			This signal indicates a changed value of the given


			This signal will be sent when a low level
			disconnection to a remote device has been requested.
			The actual disconnection will happen 2 seconds later.

		NodeCreated(object node)

			Parameter is object path of created device node.

		NodeRemoved(object node)

			Parameter is object path of removed device node.

Properties	string Address [readonly]

			The Bluetooth device address of the remote device.

		string Name [readonly]

			The Bluetooth remote name. This value can not be
			changed. Use the Alias property instead.

		string Icon [readonly]

			Proposed icon name according to the
			icon naming specification.

		uint32 Class [readonly]

			The Bluetooth class of device of the remote device.

		array{string} UUIDs [readonly]

			List of 128-bit UUIDs that represents the available
			remote services.

		boolean Paired [readonly]

			Indicates if the remote device is paired.

		boolean Connected [readonly]

			Indicates if the remote device is currently connected.
			A PropertyChanged signal indicate changes to this

		boolean Trusted [readwrite]

			Indicates if the remote is seen as trusted. This
			setting can be changed by the application.

		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 reseting the alias with an empty string, the
			emitted PropertyChanged signal will show the remote
			name again.

		array{object} Nodes [readonly]

			List of device node object paths.

		object Adapter [readonly]

			The object path of the adpater 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 in the
			Adapter.DeviceFound signal to anticipate whether
			legacy or simple pairing will occur.

			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.