使用OpenNetCF完成windows mobile上的wifi通信
2010-08-23 05:25:00 来源:WEB开发网核心提示:point后如果没有进行连接,是不会存放到PreferredAccessPoints字段里面,使用OpenNetCF完成windows mobile上的wifi通信(4),所以我们可以直接使用 PreferredAccessPoints里面的access point的名字作为参数传入前面说的ConnectToPrefe
point后如果没有进行连接,是不会存放到PreferredAccessPoints字段里面,所以我们可以直接使用
PreferredAccessPoints里面的access
point的名字作为参数传入前面说的ConnectToPreferredNetwork(因为满足了already-configured的要求),而如果仅仅将找到的热点(不在PreferredAccessPoints或者说没经过连接的,直接传入
ConnectToPreferredNetwork,那就会报错),所以从这里我们可以看出,要连接上某个无线网络,实际上要经过一层
configure的。而我们要把找到的热点链接上那怎么办的,那就要依靠WirelessZeroConfigNetworkInterface对象的
AddPreferredNetwork函数了,把找到的未配置或者已经配置的access
point通过AddPreferredNetwork加入到PreferredNetwork里面,然后再调用
ConnectToPreferredNetwork,就可以完成连接了。
view sourceprint?01while (count == 0)
02
03{
04
05collection = m_wzc.NearbyAccessPoints;
06
07count = collection.Count;
08
09}
10
11MessageBox.Show(count.ToString());
12
13foreach (AccessPoint ap in collection)
14
15{
16
17if (ap.AuthenticationMode == AuthenticationMode.Open)
18
19{
20
21MessageBox.Show( m_wzc.AddPreferredNetwork(ap).ToString());
22
23}
24
25}
可以看到,上面的代码,我用了一个while来才NearbyAccessPoints的查找,这是因为OpenNetCF里这个字段有个bug,不一定每次m_wzc.NearbyAccessPoints都能返回access point的集合,而且如果你仅仅靠判断NearbyAccessPoints是否为空也是不行的,
while (collection == null)
{
collection = m_wzc.NearbyAccessPoints;
}
它会返回一个不会null的集合对象,但是里面其实是空的。结果你拿不到半个access point
4 最后,这个命名空间,这些类还有好多功能可以实现,比如获得access point的信号状态啊,有无使用加密啊什么的,这些有兴趣或者需要的话就自己研究了,下面附上一个简单的程序。testWifi.rar
更多精彩
赞助商链接