您的位置:首页 > 理论基础 > 计算机网络

android之wpa_cli 命令连接无线网络 无需界面选择

2014-04-12 22:22 288 查看

用wpa_cli 连接无线网络

# cp /media/sd8686.bin /lib/firmware/sd8686.bin

# cp /media/sd8686_helper.bin /lib/firmware/sd8686_helper.bin

# dpkg -i kernel-smartq5-modules_2.6.24.7-smartq5-050509_all.deb

 

# insmod sd8686.ko 

 

# ifconfig -a

 

# chmod 0660 /data/misc/wifi/wpa_supplicant.conf

 

* The content of wpa_supplicant.conf

----

update_config=1

ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=1010

----

# /system/bin/wpa_supplicant -Dwext -iwlan0 -c /data/misc/wifi/wpa_supplicant.conf

# /system/bin/wpa_cli -i wlan0 -p /data/system/wpa_supplicant

 > status

 INACTIVE

 > help

 > add_network

 > set_network 0 ssid "NETGEAR"

 > set_network 0 key_mgmt NONE 

 > set_network 0 priority 0

 > list_network

 > save_config

 > enable_network 0

 

bssid=00:24:b2:5b:5b:0a 

ssid=NETGEAR 

…. 

wpa_state=COMPLETED
=================================================================================================================

wpa_supplicant软件包中包含客户端程序 wpa_cli,通过它可以直接连接无线网络,不需要通常的无线网络配置文件的方式,这在某些特殊情况下是有用的。

下面通过一个例子来说明wpa_cli 的使用:
1、启动wpa_supplicant

以daemon方式启动wpa_supplicat:
wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant.conf

其中的wlan0为系统内的无线网卡的设备名。配置文件是/etc/wpa_supplicant.conf,其中不包含要连接的无线网络的配置信息。最简单的配置文件只包含一句配置语句即可:
ctrl_interface=/var/run/wpa_supplicant

2、启动wpa_cli
wpa_cli -i wlan0

如果系统内只有一个无线网卡,则-i wlan0参数可省略。程序启动后,进入交户操作状态,可接受用户的命令输入。下面的命令都是在这个交互操作模式下输入的。

3、增加网络,并设置网络参数

可以先用status命令查讯网络连接状态,应该返回

wpa_state=DISCONNECTED

用下面的命令增加网络,并设置相应的参数
add_network

该命令会返回新增加的网络的ID,一般是0 。下面的命令的第一个参数就是网络的ID。
set_network 0 ssid "wyk"    

wyk是无线网络名称,要用引号围起来。
set_network 0 psk "password"    

password代表网络的密码,也要用引号围起来。

有这两个网络参数一般就够了。

4、启用网络
enable_network 0

命令执行后,wpa_cli 会输出连接的过程信息。如果一切正确,则最后后输出:

<2>CTRL-EVENT-CONNECTED - Connection to xx:xx:xx:xx:xx:xx completed (reauth) [id=0 id_str=]

5、获取IP地址


quit

命令退出wpa_cli 。然后用
dhclient wlan0

命令获取IP地址。

 

Android手机WIFI数据开关命令svc教程

svc命令
    这个脚本在/system/bin目录下,这个命令可以用来控制电源管理,wifi开关,数据开关(就是上网流量)

svc power stayon [true|false|usb|ac] 

    这个是控制usb插入的时候屏幕是否常亮,这个有地方设置,就不多说了

svc data disable
    这个命令可以关闭数据连接,就是上网流量,大家都知道控制上网的开关很多,但是大都是通过在apn上的接入点加后缀来实现的,但是这个命令不会更改apn的任何设置,直接在底层关闭数据连接。 应该是最彻底的,而且又不影响apn的设置。这个跟apndroid有什么区别,apndroid是在关闭上网数据的时候,已经在下载的连接可能不会被强制关闭(这个在apndroid自己的说明中也有提到)。比如你在下载一个10M的电影,下载了1M,不响下载了。用apndroid关闭连接,可能这个下载还会继续,不会马上停掉。但是用这个命令,绝对毫不留情的咔嚓掉。

svc data enable 

    这个是打开上网数据连接,跟上一个命令是相反的。

svc data prefer
    这个命令是控制3g数据连接比wifi优先。我们都知道,正常情况下,有wifi的时候,不会用到3g连接。但是这个命令是相反,有3g的话先用3g流量,没有3g的时候采用wifi.我想大家不会这么傻吧,所以这个命令没什么用。

svc wifi disable 

    关闭wifi 连接

svc wifi enable 
    开启wifi连接

svc wifi prefer 
    设置wifi优先,跟5是相反的。

上面的命令都要在shell中执行,需要root。大家可以用gscript ,然后输入这些命令做成在快捷方式放在桌面,跟那些开关软件一样方便使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: