您好我在过去几天遇到此问题,同时尝试使用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']
输出fropm connMan日志
connmand [1899]:src / agent.c:agent_receive_message()代理0x55640fe8 req 0x55644378
connmand [1899]:src / service.c:request_input_cb()RequestInput返回, 0x55649ad0
connmand [1899]:SRC / service.c:request_input_cb()错误: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() service 0x55649ad0 pending(nil)
connmand [1899]:src / service.c:service_save()service 0x55649ad0 new 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)
由于
答案 0 :(得分:0)
我无法让dbus-native工作。
我的解决方案是在/ lib / connman /中创建一个wifi.config文件,其中包含每个服务的密码:
wifi.config示例
[service_wifi_00e04c819295_4469679972434649_managed_psk]
Type = wifi
Security = wpa2
Name = [service_]
Type = wifi
Security = wpa2
Name = WiFiAP
Passphrase = 12345
然后只需使用dbus-native连接到WiFi服务:
连接强>
var dbus = require('dbus-native');
var bus = dbus.systemBus();
bus.invoke({
destination: 'net.connman',
path: '/net/connman/service/wifi_48022aca514f_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);
}
});