Android – Como buscar redes Wi-fi e se conectar programaticamente (Wi-Fi Scan)

Android-WiFi

Nesta publicação vamos mostrar como realizar uma busca de redes Wi-Fi (wirelles) e um exemplo simples de como se conectar.

Permissões Necessárias:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Abaixo criei uma classe para gerenciar o adaptador Wi-Fi, nela vamos ter um Listener que vai notificar nossa tela quando a busca foi terminada, e um método statico para iniciar a consulta. Continue reading

Android – Ativar o Roteador Wi-Fi programaticamente. (How to turn on hotspot in Android Programmatically)

android_hotspot

O método abaixo é capaz de ativar e configurar o roteador wi-fi, veja que podemos passar a classe WifiConfiguration para configurar, caso queira manter a mesma configuração basta passar ‘null’.

    /**
     * Exemplo:
     * WifiConfiguration netConfig = new WifiConfiguration();
     * netConfig.SSID = "EVE03";
     * netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
     * netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
     * netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
     * netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
     *
     * @param wifiConfiguration passar null para manter as configurações atuais
     * @param enable habilitar ou nao o hotspot/wifi ap
     * @throws Exception
     */
    public void setWifiApEnable(WifiConfiguration wifiConfiguration, boolean enable) throws Exception {
        WifiManager wifi_manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        Method wifiApConfigurationMethod = wifi_manager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
        wifiApConfigurationMethod.invoke(wifi_manager, wifiConfiguration, enable);
    }

Lembre-se de aplicar as permissões necessárias:
Continue reading