嗨,过去几天我一直有这个问题,我试图用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日志
connmand1899: src/agent.c: agent _receive()代理0x55640fe8 req 0x55644378 connmand1899: src/service.c: RequestInput ()RequestInput返回,0x55649ad0 connmand1899:src/service.c:request_input_cb()error:org.freedesktop.DBus.Error.UnknownService src/service.c:__connman_service_return_error()服务connmand1899: 0x55649ad0错误22 user_data (0) src/service.c:__connman_service_set_hidden_data()服务0x55649ad0挂起(无) connmand1899: src/service.c: service _save() service 0x55649ad0新1 connmand1899: src/connection.c:update() connmand1899: src/service.c:__connman_ service _get_ order ()服务0x55640a08名称有线订单1拆分0 connmand1899: src/connection.c:find_ default ()default 0x5563b250订单1 src/connection.c:__connman_connection_update_gateway()默认connmand1899: 0x5563b250 connmand1899: src/service.c:context_service_unref_debug() 0x55649ad0 ref,由src/service.c:6945:agent_context_unref()
因此,基本上,如果有人能告诉我如何将包含WiFi网络密码的用户数据传回给我,我会非常感激。
有什么帮助是非常感谢的吗?(connMan版本1.20)
谢谢
发布于 2014-11-26 09:28:38
我没能找到工作的本地人。
我的解决方案是在/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-本机连接到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);
}
});https://stackoverflow.com/questions/27059555
复制相似问题