Skip to content Skip to sidebar Skip to footer

How Do I Program Android To Look For A Particular Network?

My application only works if it's on the campus network in order to access campus data. When running the application on public wifi or 3g network, the application will hang then fo

Solution 1:

From what you are saying i think you want to enforce application to use only Campus wifi.

So here you go

Create WifiConfiguration instance:

StringnetworkSSID="put network SSID here";
StringnetworkPass="put network password here";

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

Then, for WEP network you need to do this:

conf.wepKeys[0] = "\"" + networkPass + "\""; 
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 

For WPA network you need to add passphrase like this:

conf.preSharedKey = "\""+ networkPass +"\"";

For Open network you need to do this:

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

Then, you need to add it to Android wifi manager settings:

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.add(conf);

And finally, you might need to enable it, so Android conntects to it:

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;
    }           
 }

Note that In case of WEP, if your password is in hex, you do not need to surround it with quotes.

Post a Comment for "How Do I Program Android To Look For A Particular Network?"