androidsupplicant
❶ Android下怎么通过应用程序同时开启wifi和3G
编程时候发现当打开WIFI网络的时候系统默认就会把3G网络给关闭,估计是出于省电的原因才如此做的,但目前我需要同时使用这两个网络接口,经过一番研究找到了方法,故写成日志记录下来。
1、android网络机制。
wifi的开启关闭首先由应用程序触发的事件开始(比如用户点击开启图标),然后传入framework层,framework层启动wpa_supplicant,同时建立socket连接与wpa_supplicant进行通信,包括对wpa_supplicant的控制与得到wpa_supplicant的回传结果。若连接上了一个无线网络,则调用dhcp服务申请ip地址(或者使用预先设置好的ip,不过大部分情况下是dhcp的)。若这一切正常则断开3g网络连接并关闭3g接口。
因此从这个角度分析,若要同时启动3g和wifi则必须绕过framework层,手动完成上述所有操作。
因此我找到的方法是在3g网络不断的情况下,手动启动wifi网络,连接指定ap并申请ip。
2、操作步骤。
(1) 准备工作
因为牵扯到底层操作,所以root必不可少,在root的情况下进入adb shell,若adb daemon没有root使用adb root命令进而使adb shell获得root权限。
原则上使用android里的终端软件也是可以的,但我没有测试。
(2)加载wifi驱动。
不加载驱动在netcfg里面根本看不到wlan0网卡,因此首先要加载驱动。
一般情况下,驱动放在/system/lib/moles下,我的驱动模块是wlan.ko。
insmod /system/lib/moles/wlan.ko。
接着删除默认路由表项
ip route del default via 172.18.206.76 dev rmnet_usb0
重新添加指向wifi的默认路由表
ip route add default via 192.168.1.140 dev wlan0
❷ 如何查看android的wifi密码
首先手机需要获取ROOT权限,然后安装可查看系统文件的文件管理器,比如 Root Explorer。
具体步骤:
1、获取ROOT权限,如果手机已经有ROOT则可以跳过此步骤。
2、安装Root Exploere。
3、打开Root Exploere,进入data/misc/wifi。
4、打开目录里wpa_supplicant.conf或者其他文件名以.conf结尾的文件,所有手机记住的wifi密码都在这个文件里。
5、Android的wifi密码是明文保存的打开wpa_supplicant.conf直接看了。
❸ android.net.wifi.supplicant.STATE_CHANGE广播无法接收问题
在rockchip平台,5.1版本下
SUPPLICANT_STATE_CHANGED_ACTION需要通过静态注册才可以接收到!
类似SCREEN_ON OFF这种,注意这条思路。
???action从常量名改成字符串就可以了???是的。
❹ 如何查看android的wifi密码
1、安装Root Exploere
2、打开Root Exploere,进入data/misc/wifi
目录里有个wpa_supplicant.conf或者其他文件名以.conf结尾的文件,所有手机记住的wifi密码都在这个文件里。
Android的wifi密码是明文保存的,我们只需要知道他在哪里就可以打开直接看了
❺ 如何查看android的wifi密码
手机必须先获取root权限,手机每次连接新的热点后会将热点名称以及密码存入以下路径:
/data/misc/wifi/wpa_supplicant.conf
查看方法:用第三方文件管理器(如RootExplorer)进入到”/data/misc/wifi“路径下查看”wpa_supplicant.conf“文件,并选用文本格式打开即可。
ROOT延伸:
ROOT存在于Linux系统、UNIX系统(如AIX、BSD等)和类UNIX系统(如Debian、Redhat、Ubuntu等版本的Linux系统以及Android系统)中,是系统中唯一的超级用户,相当于Windows系统中的administrator用户。其具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。
root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。最好单独建立一个普通的用户,作为日常之用。