Android wifimanager всегда возвращает true

Это меня убивает, и любая помощь будет принята с благодарностью.

Я хочу подключиться к открытой сети с помощью диспетчера Wi-Fi. Проблема, с которой я столкнулся, заключается в том, что код заявляет о подключении к любой сети, даже к несуществующей. Ниже приведен весь код, который запускается и вызывается с SSID сети. Неважно, какую строку вы передаете ему в качестве SSID сети, даже если такая сеть не существует ни в какой форме или форме, утверждение enableNetwork возвращает true, что, как я считаю, означает, что он подключен к сети.

Что я нужно сделать, это убедиться, что у меня есть соединение. Поэтому, если я передаю сетевой SSID, который не существует (например, вне допустимого диапазона), API должен возвращать ошибку при попытке подключения.

Любые идеи / подсказки / предложения будут очень признательны.

public boolean conto (String network){

    WifiConfiguration wifiConfiguration = new WifiConfiguration();
    wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    List<WifiConfiguration> configs = null;
    int inetId = -1;


    // make sure there are no funny stuff in the config
    configs = wifi.getConfiguredNetworks();
    for (WifiConfiguration config : configs) {
        wifi.removeNetwork(config.networkId);
        Log.d("********", "Removed Network: SSID=[" + config.SSID + "] and ID=[" + config.networkId + "]");

    }

    // Now add the network
    wifiConfiguration.SSID = "\"" + network + "\"";
    wifiConfiguration.hiddenSSID = false;
    //wifiConfiguration.priority = 1;
    //wifiConfiguration.networkId = 999;

    inetId = wifi.addNetwork(wifiConfiguration); 
    if(inetId < 0) {
            Log.d("********", "Could Not Add Network......... [" + wifiConfiguration.SSID + "]"); 

        } 
        else { 

            Log.d("********", "Added Network......... [" + wifiConfiguration.SSID + "]");

            // Lets be paranoid and double check the config file
            Log.d("********", " +++++++++++++++++++++++++ This is what I have in Config File");
            configs = wifi.getConfiguredNetworks();
            for (WifiConfiguration config : configs) {
                Log.d("********", "In the Config file after add, SSID=[" + config.SSID + "], ID=[" + config.networkId + "]");

            }

            // Now Enable the network
            boolean successConnected = wifi.enableNetwork(inetId, true); 
            //boolean successAssociated = wifi.reassociate(); This did not change the results

            if(successConnected) { 
                Log.d("********", "Connected to......... [" + inetId + "]");
            } 
            else { 

                Log.d("********", "Could Not Connect to......... [" + inetId + "]"); 

            } 


        }
        return false;
    }
5
задан Bob 10 March 2011 в 19:23
поделиться