¿Como indicarle a mi aplicación Android que se conecte siempre a la misma red wifi?

publicado por: Anonymous

El dispositivo en el cual estará la aplicación siempre estará en el mismo lugar pero en ese mismo lugar hay muchas redes Wifi.

Investigando encontre que existe la clase: WifiManager y sus métodos: WIFI_STATE_ENABLED, getConfiguredNetworks bueno no se si se pueda lo que quiero hacer y también no tengo idea de por donde empezar alguien que me indique si es posible o no?

UPDATE

Por lo visto lo que menciono anteriormente si es posible. Hasta el momento puedo lograr que se conecte a una red wifi a la que ya haya estado conectado previamente con lo siguiente:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

          WifiManager wifiManager= (WifiManager)getSystemService(Context.WIFI_SERVICE);
          wifiManager.setWifiEnabled(true);
    }
}

Sin embargo no se como hacerle para especificarle a que red Wifi debe conectarse

solución

Si se desea especificar a que Red Wifi deseamos que se conecte nuestra app podemos utilizar el siguiente código:

    public class MainActivity extends AppCompatActivity {

    String networkSSID = "REDWIFI";
    String networkPass = "password";
    WifiConfiguration conf = new WifiConfiguration();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        conf.SSID = """ + networkSSID + """;
        conf.preSharedKey = """+ networkPass +""";

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

        if ((wifiManager.isWifiEnabled() == false)) {
        Toast.makeText(MainActivity.this, "Conectando a WIFI...", Toast.LENGTH_LONG).show();
        wifiManager.setWifiEnabled(true);
    }

        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;
            }
        }
     }
 }
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *