嗨,过去几天我一直遇到这个问题,同时尝试使用 dbus 连接到受保护的 WiFi 网络。所以到目前为止我开发的代码是:
注册代理
var dbus = require('dbus-native');
var bus = dbus.systemBus();
bus.invoke({
destination: 'net.connman',
path: '/',
'interface': 'net.connman.Manager',
member: 'RegisterAgent',
type: dbus.messageType.methodCall,
signature: 'o',
body: [
'/test/agent'
]
}, function(error, response) {
if (error) {
console.error('Error', error);
//process.exit(1);
} else {
console.info('Success', response);
// process.exit(0);
}
});
输出
> Success
扫描 Wifi
var dbus = require('dbus-native');
var bus = dbus.systemBus();
bus.invoke({
destination: 'net.connman',
path: '/net/connman/technology/wifi',
'interface': 'net.connman.Technology',
member: 'Scan',
type: dbus.messageType.methodCall,
}, function(error, response) {
if (error) {
console.error('Error', error);
//process.exit(1);
} else {
console.info('Success', response);
//process.exit(0);
}
});
输出
> Success
连接到 WiFi 服务
var dbus = require('dbus-native');
var bus = dbus.systemBus();
bus.invoke({
destination: 'net.connman',
path: '/net/connman/service/wifi_00e04c81923e_4469676957494649_managed_psk',
'interface': 'net.connman.Service',
member: 'Connect',
type: dbus.messageType.methodCall,
}, function(error, response) {
if (error) {
console.error('Error', error);
//process.exit(1);
} else {
console.info('Success', response);
//process.exit(0);
}
});
输出
> Error ['Invalid Arguments']
来自 connMan 日志的输出
connmand [1899]:src/agent.c:agent_receive_message() 代理 0x55640fe8 请求 0x55644378
connmand[1899]:src/service.c:request_input_cb() RequestInput 返回,0x55649ad0
connmand[1899]:src/service.c:request_input_cb()error:org.freedesktop.DBus.Error.UnknownService
connmand [1899]: src/service.c:__connman_service_return_error() 服务 0x55649ad0 错误 22 user_data (nil)
connmand [1899]: src/service.c:__connman_service_set_hidden_data() 服务 0x55649ad0 挂起 (nil)
connmand [1899]:src/service.c:service_save() 服务 0x55649ad0 新 1
connmand[1899]: src/connection.c:update_order()
connmand[1899]: src/service.c:__connman_service_get_order() 服务 0x55640a08 名称有线订单 1 拆分 0
connmand[1899]: src/connection.c:find_default_gateway() 默认 0x5563b250 订单 1
connmand[1899]: src/connection.c:__connman_connection_update_gateway() 默认 0x5563b250
connmand[1899]: src/service.c:connman_service_unref_debug() 0x55649ad0 ref 1 by src/service.c:6945:agent_context_unref()
所以基本上,如果有人能告诉我如何传回包含 WiFi 网络密码的用户数据,我将不胜感激。
任何帮助将不胜感激?(connMan 1.20 版)
谢谢