Документация
ОС Аврора 5.1.0
Примеры
В примерах ниже демонстрируется использование различных возможностей данного API.
Вызов метода на объекте сессионной шины
В данном фрагменте кода происходит обращение к демону профилей и установка текущего профиля в значение 'silent'.
import QtQuick 2.0
import Nemo.DBus 2.0
Item {
DBusInterface {
id: profiled
service: 'com.nokia.profiled'
iface: 'com.nokia.profiled'
path: '/com/nokia/profiled'
}
Component.onCompleted: {
// Вызывается метод "set_profile"
profiled.call('set_profile', ['silent']);
}
}
Вызов метода и получение возвращаемого значения
Поскольку вызовы методов являются асинхронными, потребуется предоставить функцию обратного вызова, которая будет вызываться после получения результата вызванного метода:
import QtQuick 2.0
import Nemo.DBus 2.0
Item {
DBusInterface {
id: profiled
service: 'com.nokia.profiled'
iface: 'com.nokia.profiled'
path: '/com/nokia/profiled'
}
Component.onCompleted: {
// Вызывается метод "get_profile" без аргументов и,
// когда он вернёт значение, следует вызвать переданную функцию обратного вызова
profiled.typedCall('get_profile', [], function (result) {
// Этот код будет исполнен после получения результата вызванного метода
console.log('Got profile: ' + result);
});
}
}
Прослушивание сигналов объекта D-Bus
import QtQuick 2.0
import Nemo.DBus 2.0
Item {
DBusInterface {
id: profiled
service: 'com.nokia.profiled'
iface: 'com.nokia.profiled'
path: '/com/nokia/profiled'
signalsEnabled: true
function profile_changed(changed, active, profile, values) {
if (changed && active)
console.log("Profile changed to:", profile)
}
}
}