android 修改底层wifi 文件信息
来源:互联网 发布:网站内链优化 编辑:程序博客网 时间:2024/06/05 14:38
开发背景: root过的设备 4.4版本
需求: 可由后台配置好wifi账号和密码 推送到设备,设备如果搜索到此wifi账号则自动连接.
1:需先找到android设备将wifi信息保存到哪里去了?
还是很好找的在这里:misc/wifi/wpa_supplicant.conf
可以看下里面都存的是什么:
如图 是我获取到的文件信息
上面是一些硬件信息,可以不用管,下面的network是我们要处理的信息
ssid存的就是wifi账号,psk就是密码,key_mgmt是加密类型,对我们也没什么用,priority是优先级
我们重点关注ssid和psk
也就是说我们只需要将network信息写到这个文件里就行了
2:怎么写?
虽然设备已经root过,但是读写的权限还是只有系统才能写,需要改变这个文件的权限让root权限也可以对该文件读写.
这里可以了解一下文件的权限知识:
每个文件都有 读写运行权限,一个文件的权限用 r (读)w(写) x(运行)表示,r=2,w=4,x=1, 也就是说 要有所有的权限就需要7
一个文件权限一般是这样表示的:rwxrwxrwx 第一个rwx指的是登陆用户,第二个是他所在的组,第三个是其他用户,加入其他用户对该文件没有任何权限就是:rwxrwx---(770);他所在的组只有读的权限:rwxr-----(720),
针对于我们的需求 我们就简单粗暴的改为777的权限就ok了.
3:改权限
直接使用 adb命令:
先修改文件夹权限:"chmod 777 /data/misc/wifi"
再修改文件权限:"chmod 777 data/misc/wifi/wpa_supplicant.conf"
这里说一下为什么要分两步: 做的时候 我也刚开始只是修改了文件权限,但是都不成功,后来查看了下权限,发现是对文件夹没有读写的权限,那就把文件夹的权限也修改了就OK了!!哈哈
在静默安装那篇文章里就发过一个执行adb命令的工具类,这里再发一下:执行adb命令工具类
4:直接写:
把服务器推过来的账号密码按格式写进文件就行啦
String data= "\n" + "\n" + "network={\n" + "\tssid=\""+ssid+"\"\n" + "\tpsk=\""+pwd+"\"\n" + "\tscan_ssid=1\n" + "\tkey_mgmt=WPA-PSK\n" + "\tpriority=3\n" + "}";
5:写进来之后可以去尝试连接一次,重启wifi直接尝试连接
private void restartWifi(){ if(mWifiManager.isWifiEnabled()){ mWifiManager.setWifiEnabled(false); } mWifiManager.setWifiEnabled(true); isRestartWifi=true; ULogUtil.getInstance().e("restartWifi");}
重启之后直接去已经配置好的信息里连接刚才我们保存的ssid
private void enableWifi() { for (int i = 0; i < mConfigList.size(); i++) { //先去已经配置好的网络信息中查看 如果有直接连接 configuration = mConfigList.get(i); if (configuration.SSID.equals("\"" + ssid + "\"")) { mWifiManager.enableNetwork(configuration.networkId, true); mTimerTask=new ConnectWifiTask(); mTimer=TimerManager.schedule(mTimerTask,10*1000); return; } }}
mConfigList 是获取到的所有的文件里保存的network
mConfigList=mWifiManager.getConfiguredNetworks();
这个后面也做了别的优化:
10秒之后去查看是否连上了我们配置的ssid,如果没连上就再重启wifi让设备自己随便连哪个wifi都可以
写10秒的延迟是因为重启再连上一次wifi设备需要一定的时间 比较慢
- android 修改底层wifi 文件信息
- Android Wifi驱动--底层
- Android Wifi驱动--底层
- Android Wifi驱动--底层
- Android Wifi驱动--底层
- android修改底层键值
- android 获取wifi信息
- Android获取WiFi 信息
- android WIFI信息获取
- android WIFI信息获取
- Android--部分wifi信息
- android 获取系统底层信息
- Android Wifi驱动--底层&& WIFI手动命令行连接AP
- 修改底层文件,实现修改Android设备屏幕亮度和控制led灯
- Android安卓一键修改手机信息imei sim serial mac wifi 手机型号等等
- android底层驱动学习之如何通过debugfs创建文件的方式来调试内核信息
- android修改wifi设备名
- android 修改wifi设备名
- C/C++笔试题
- java初学 Java语法基础练习题
- java1
- ubuntu16.04+CUDA8.0+cuDNN5.1+opencv2.4.13+Anaconda的caffe编译过程
- java.lang.ArithmeticException
- android 修改底层wifi 文件信息
- angular指令监听ng-repeat渲染完成
- 接口和抽象类的区别
- ueditor中关闭‘保存文件’的解决方法
- JPEG2000开源库
- HDU1170 格式题
- 【洛谷 P2587】[ZJOI2008]泡泡堂
- 最优二叉树——哈夫曼树
- P2356 弹珠游戏