Android Wifi 的设置、连接操作
我项目中这部分的代码是参考的这里的:http://blog.csdn.net/cscmaker/article/details/7032277
但是,参考了这段代码之后可没少忙活!怎么试都连不上,wifi 的信息是创建了,可就是没法连接上。百思不得其解,后来我想,会不会是设置的地方出了问题。
原来是这样设置的:
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;
我是这样检测的,我自己手动连接好一个网络,然后获取这个连接,将下面的信息输出:
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 如下:
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
就可以了,密码也是要设一下的,其它的都可以注释掉。
于是,问题完美解决了……啊哈哈哈哈……
这次也给了我自己一个经验,那就是别人的代码也不能完全相信,还是要自己亲自实践才行。但参考代码这个步骤是必须的,因为它能带给你无数的灵感,还能指引你方向,因为有时候你根本不知道从何下手,参考一些代码之后,就会大体了解怎么去做,需要引用哪些包,然后在对这些包进行搜索,查看官方文档,很快,问题就可以迎刃而解了。
C# 获取指定网卡的 IP 地址
2012-07-28
最近几天都在玩游戏,没怎么编程,感觉好空虚啊!主要是之前在 Android 上建立 wifi 热点出现了一些问题,难以进展下去,于是便耽搁了,今天决定先跳过那个问题,Android 手机之间的传输先暂时不考虑,先做一下 Android 与 PC 之间的数据传输。
如何修改 Windows 库图标
2012-07-20
相信大家也用了这么久的 Win7 了,对 Windows 的库应该也不陌生,库与传统的文件夹的差别是,文件夹是以物理位置确定的,而一个库里面可以链接多个文件夹,打个比方,你在 E 盘有个 TDDownload 文件夹,这个是迅雷默认的下载文件夹,然后你在“C:\Users\用户名\Downloads”这里也有一个下载文件夹,这个是系统默认的下载位置,然后你可以把他们都加到系统的“下载”这个库中,并且你可以给这个库设置一个默认位置,这样,你在这个库中可以同时看到两个文件夹里的文件,而你把文件放到库中的时候,它会默认保存在你设置的默认位置里。好,这是库的简单介绍。