首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何编写android程序来查找特定的网络?

我如何编写android程序来查找特定的网络?
EN

Stack Overflow用户
提问于 2012-06-16 10:56:25
回答 1查看 372关注 0票数 0

我的应用程序只有在校园网上才能工作,以便访问校园数据。在公共wifi或3g网络上运行应用程序时,应用程序将挂起,然后强制关闭。如何编写我应用程序来检查专用网络/wifi,或者检查android当前使用的连接,如果不等于“校园wifi”,那么....?

EN

回答 1

Stack Overflow用户

发布于 2012-06-16 11:29:26

根据你所说的,我认为你想强制应用程序只使用校园wifi。

好了,给你

创建WifiConfiguration实例:

代码语言:javascript
复制
String networkSSID = "put network SSID here";
String networkPass = "put network password here";

WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";   //ssid must be in quotes

然后,对于WEP网络,您需要执行以下操作:

代码语言:javascript
复制
conf.wepKeys[0] = "\"" + networkPass + "\""; 
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 

对于WPA网络,您需要添加密码,如下所示:

代码语言:javascript
复制
conf.preSharedKey = "\""+ networkPass +"\"";

对于开放网络,您需要执行以下操作:

代码语言:javascript
复制
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

然后,你需要将其添加到Android wifi管理器设置中:

代码语言:javascript
复制
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.add(conf);

最后,你可能需要启用它,所以Android连接到它:

代码语言:javascript
复制
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
    if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
         wm.disconnect();
         wm.enableNetwork(i.networkId, true);
         wm.reconnect();                

         break;
    }           
 }

请注意,在使用WEP的情况下,如果您的密码是十六进制的,则不需要用引号将其括起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11060414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档