Uma implementação nativa em Dart do cliente da mensagem do barramento D-Bus. Este pacote permite que aplicativos Dart acessem diretamente serviços na área de trabalho do Linux.
Orientação gerada a partir de informações públicas. Apenas para referência.
Uma implementação nativa em Dart do cliente da mensagem do barramento D-Bus, permitindo que aplicativos Dart se comuniquem diretamente com serviços de desktop do Linux. Este pacote fornece acesso de baixo nível ao D-Bus, permitindo interações com serviços do sistema e aplicativos, como gerenciamento de sessão, eventos de hardware e integração com a área de trabalho. É projetado para desenvolvedores que constroem aplicações desktop no Linux, com suporte a Windows e macOS por meio de implementações compatíveis do D-Bus. A biblioteca oferece uma API limpa e nativa em Dart para envio e recebimento de mensagens pelo D-Bus.
Casos de uso
Interagindo com serviços do sistema Linux
Integrando recursos de desktop em aplicativos Dart
Acessando eventos de hardware e sessão
Construindo utilitários de desktop multiplataforma
Habilitar a comunicação com outros aplicativos de desktop
Principais recursos
Cliente nativo do Dart D-Bus
Acesso direto aos serviços de desktop do Linux
Suporte para barramentos de mensagens (sessão e sistema)
You can then use the generated test-remote-object.dart to access that remote object from your program:
import'package:dbus/dbus.dart';
import'test-remote-object.dart';
Future<void> main() async {
var client = DBusClient.session();
var object = ComExampleTestObject(client, 'com.example.Test');
var version = await object.getVersion();
print('version: $version');
var reversedText = await object.callReverseText('Hello World');
print(reversedText);
await client.close();
}
The code generated by dart-dbus may not be the cleanest API you want to expose for your service. It is recommended that you use the generated code as a starting point and then modify it as necessary.
Exporting local objects
The above interface definition can also be processed to generate a class for exporting this object.
You can also choose to access D-Bus objects directly without interface definitions and dbus-dart.
This requires writing more code and handing more error cases.
The following code shows how to access the remote object in the above examples:
import'package:dbus/dbus.dart';
Future<void> main() async {
var client = DBusClient.session();
var object = DBusRemoteObject(client, name: 'com.example.Test', path: DBusObjectPath('/com/example/Test/Object'));
var value = await object.getProperty('com.example.Test', 'Version', signature: DBusSignature('s'));
var version = value.asString();
print('version: $version');
var response = await object.callMethod('com.example.Test', 'ReverseText', [DBusString('Hello World')], replySignature: DBusSignature('s'));
var reversedText = response.values[0].asString();
print('$reversedText');
await client.close();
}
And the following shows how to export that object: