我如何编程android寻找一个特定的网络?(简单教程后的问题)



我想用下面的例子:

我如何编程android寻找一个特定的网络?

但是我无法执行它,因为下面的问题:

wiimanager wiimanager = (wiimanager)context.getSystemService(Context.WIFI_SERVICE);

之后,我得到了其他几个错误-但[我认为]我已经按照教程/示例精确。

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

ECLIPSE问题日志中的问题:

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

你似乎混淆了一些变量名:

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应该是wm,反之亦然。另外,context应该是this,或者只是省略getSystemService()是你的类的方法。

我不确定add()的问题…

编辑:

对于WifiManager, add()不存在,但addNetwork()存在,所以我猜你需要这个方法而不是add()

Edit2 :

你不知道你在做什么,对吗?您甚至不理解类名和变量名之间的区别!

WifiManager wifiManager <-第一个是Type,也称为class。第二个是变量名。在你的for循环中,你使用类型/类而不是变量,所以只写wifiManager而不是WifiManager

你应该明确地从理解编程、OOP和Java的基本知识开始。认真……先学再写

最新更新