安卓WIFI获取列表并密码连接 开发实例
标签(空格分隔): 未分类
最近在做关于智能控制的app,用到wifi控制,简单配置并获取过程 记录如下:
用WiFi首先要获取wifi列表 ,然后去连接wifi
和我们手机设置操作相同,首先要确认是否打开wifi开关吧,判断用wifiManager.isWifiEnabled()方法;
用到几个权限< uses-permission android:name=”android.permission.CHANGE_NETWORK_STATE” >
< /uses-permission>
< uses-permission android:name=”android.permission.CHANGE_WIFI_STATE” >
< /uses-permission>
< uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” >
< /uses-permission>
< uses-permission android:name=”android.permission.ACCESS_WIFI_STATE” >
< /uses-permission>我这里也是边操作边记录,下面准备用dialog的listview来记录wifi列表。
写一个点击事件,打开wifi 获取列表,弹出dialog显示列表信息。
我是在fragment中获取wfiimanger 需要在appca
获取WiFi列表,
wifiManager.startScan(); //开启扫描
scanResults = wifiManager.getScanResults();
测试出现返回结果为空,因为6.0以6.0以上wifi获取权限 点击查看上的权限问题
关于6.0以上权限问题的文章
setWifiEnabled()的方法,打开关闭前,先要判断wifi的状态,使用isWifiEnabled()方法。所以6.0版本以上需要打开用户gps开关,
需要这个权限,然而只有系统app才有,所以只有手动引导用户自己打开了。。
才能显示wifi列表 。。坑widi开关事件里的代码:
` boolean bRet = true; // if (!wifiManager.isWifiEnabled()) { // bRet = wifiManager.setWifiEnabled(true); // } Wifiadmin.checkState(getActivity()); Wifiadmin.openWifi(getActivity()); // WifiUtil.openGPS(getActivity()); Wifiadmin.startScan(getActivity()); //开启扫描 scanResults= Wifiadmin.getWifiList(); final String[] items=new String[scanResults.size()]; // List Toast.makeText(getActivity(),""+items.length,Toast.LENGTH_SHORT).show(); for(int i=0;i