0

I'm attempting to use the following example:

How do I program android to look for a particular network?

But I'm unable to execute it due to issues stemming from the line:

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

After that I'm getting several other errors - but [I think] I've followed the tutorial/example precisely.

import java.util.List;
import android.app.Activity;    
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.content.Context; 

public class Connect extends Activity  {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.connect);
        String networkSSID = "ANDRE-PC_NETWORK";
        String networkPass = "superman";

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


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

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

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

        WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE); 
        wifiManager.addNetwork(conf);

        List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
        for( WifiConfiguration i : list ) {
            if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
                 WifiManager.disconnect();
                 WifiManager.enableNetwork(i.networkId, true);
                 WifiManager.reconnect();                

                 break;
            }           
         }

    }}

ISSUES IN ECLIPSE PROBLEM LOG:

Description Resource    Path    Location    Type
Cannot make a static reference to the non-static method reconnect() from the type WifiManager   Connect.java        line 41 Java Problem
Cannot make a static reference to the non-static method disconnect() from the type WifiManager  Connect.java        line 39 Java Problem
Cannot make a static reference to the non-static method enableNetwork(int, boolean) from the type WifiManager   Connect.java        line 40 Java Problem
Community
  • 1
  • 1
RobTheBuilder
  • 37
  • 5
  • 11

1 Answers1

0

You seem to confuse some variable names:

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

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

wifiManager should be wm or vice versa. Also context should be this or just left out as getSystemService() is a method of your class.

I am not sure about the issue with add()...

Edit:

Well add() does not exist for WifiManager but addNetwork() does, so I guess you need that method instead of add()

Edit2:

You have no idea what you are doing, right? You don't even understand the difference between a class name and a variable name!

WifiManager wifiManager <- First is the Type, also known as class. The second one is the variable name. In your for loop you use the type/class instead of the variable, so just write wifiManager instead of WifiManager.

And you should definitively start by understanding the very basics of programming, OOP and Java. Seriously... Learn the language before you try to write it...

WarrenFaith
  • 57,492
  • 25
  • 134
  • 150