现在的位置: 首页 > 编程技术 > 安卓开发 > 正文

Android Wifi的设置、连接操作

2016年01月05日 安卓开发 ⁄ 共 1684字 ⁄ 字号 Android Wifi的设置、连接操作已关闭评论 ⁄ 阅读 695 次

我项目中这部分的代码是参考的

但是,参考了代码之后可没少忙活!怎么试都连不上,wifi的信息是创建了,可就是没法连接上。百思不得其解,后来我想,会不会是设置的地方出了问题,

原来是这样设置的:

1
2
3
4
5
6
7
8
config.preSharedKey = "\"" + Password + "\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
config.status = WifiConfiguration.Status.ENABLED;

我是这样检测的,我自己手动连接好一个网络,然后获取这个连接,将下面的信息输出:

1
2
3
4
5
6
7
8
9
Log.i(TAG, "SSID:" + existingConfig.SSID);
Log.i(TAG, "preSharedKey:" + existingConfig.preSharedKey);
Log.i(TAG, "hiddenSSID:" + existingConfig.hiddenSSID);
Log.i(TAG, "allowedAuthAlgorithms:" + existingConfig.allowedAuthAlgorithms);
Log.i(TAG, "allowedGroupCiphers:" + existingConfig.allowedGroupCiphers);
Log.i(TAG, "allowedKeyManagement:" + existingConfig.allowedKeyManagement);
Log.i(TAG, "allowedPairwiseCiphers:" + existingConfig.allowedPairwiseCiphers);
Log.i(TAG, "allowedProtocols:" + existingConfig.allowedProtocols);
Log.i(TAG, "status:" + existingConfig.status);

这样,就可以对比,就知道怎样的是对的,哪里不对。

Log如下:

1
Created Wifi Info
SSID:"HADB-ASUS"
preSharedKey:*
hiddenSSID:false
allowedAuthAlgorithms:{}
allowedGroupCiphers:{0, 1, 2, 3}
allowedPairwiseCiphers:{1, 2}
allowedProtocols:{0, 1}
status:0
bRet=true

当然,除了preSharedKey输出的是被隐藏了的"*",因为安全性问题,密码是无法输出的,其它的项有的并不止一个值,后来看文档,发现,这些值其实都是有默认值的,根本不需要手动去设置它们,只需要将status设为WifiConfiguration.Status.ENABLED就可以了,密码也是要设一下的,其它的都可以注释掉。

于是,问题完美解决了……啊哈哈哈哈……

这次也给了我自己一个经验,那就是别人的代码也不能完全相信,还是要自己亲自实践才行。但参考代码这个步骤是必须的,因为它能带给你无数的灵感,还能指引你方向,因为有时候你根本不知道从何下手,参考一些代码之后,就会大体了解怎么去做,需要引用哪些包,然后在对这些包进行搜索,查看官方文档,很快,问题就可以迎刃而解了。

抱歉!评论已关闭.