Esto me está matando y cualquier ayuda sería muy apreciada.Android wifimanager siempre devuelve verdadero
Quiero conectarme a una red abierta usando el administrador de wifi. El problema que tengo es que el código reclama conexión a cualquier red, incluso las que no existen. A continuación se muestra el código completo que se ejecuta y se llama con el SSID de una red. No importa qué cadena le pase como el SSID de una red, incluso si dicha red no existe en ninguna forma o forma, los reclamos de enableNetwork son verdaderos, lo que creo que significa que está conectado a la red.
Lo que tengo que hacer es asegurarme de tener una conexión. Entonces, si paso un SSID de red que no existe (por ejemplo, está fuera de rango) la API debería devolver una falla al intentar conectarse.
Cualquier idea/pista/sugerencia sería muy apreciada.
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;
}
¿Alguna vez resolvió esto? Estoy teniendo el [mismo problema] (http://stackoverflow.com/questions/11378452/android-wifimanager-making-a-phantom-connection). – gcl1