How to connect android device to "WPA2 PSK" secured wifi hotspot network programmatically?

user1758835

In my Android app I'm trying to connect my Android device to "WPA2-PSK" secured connection and after lot of search I have written following code--

if (securityMode.equalsIgnoreCase("WPA2")) // WPA2
                {

                   wifiConfiguration.SSID = "\"" + networkSSID + "\"";
                    wifiConfiguration.preSharedKey = "\"" + networkPass + "\"";
                    wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
                    wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                    wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                    wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                    wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                    wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                    wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                    wifiManager.setWifiEnabled(true);
                    wifiManager.saveConfiguration();
                    int added = wifiManager.addNetwork(wifiConfiguration);
                    System.out.println("added network: " + added);
                    boolean enabled = wifiManager.enableNetwork(added, true);
                    System.out.println("enableNetwork returned: " + enabled);                   

                }

Above code is executing fine (without any error) but don't know why, connection is not getting establish. Please help. Thank you.!

KOTIOS

Below id clear api for all type of wifi security-type :

  public void addWifiConfig(String ssid,String password,String securityParam,String securityDetailParam) {
    Log.d(TAG, "Inside addWifiConfig...");
    if (ssid == null) {
        throw new IllegalArgumentException(
                "Required parameters can not be NULL #");
    }

    String wifiName = ssid;
    WifiConfiguration conf = new WifiConfiguration();
    // On devices with version Kitkat and below, We need to send SSID name
    // with double quotes. On devices with version Lollipop, We need to send
    // SSID name without double quotes
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        conf.SSID = wifiName;
    } else {
        conf.SSID = Constants.BACKSLASH + wifiName + Constants.BACKSLASH;
    }
    String security = securityParam;
    Log.d(TAG, "Security Type :: " + security);
    if (security.equalsIgnoreCase("WEP")) {
        conf.wepKeys[0] = password;
        conf.wepTxKeyIndex = 0;
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
    } else if (security
            .equalsIgnoreCase("NONE")) {
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    } else if ("WPA"
            .equalsIgnoreCase(security)
            || "WPA2"
                    .equalsIgnoreCase(security)
            || "WPA/WPA2 PSK"
                    .equalsIgnoreCase(security)) {
        // appropriate ciper is need to set according to security type used,
        // ifcase of not added it will not be able to connect
        conf.preSharedKey = Constants.BACKSLASH
                + password + Constants.BACKSLASH;
        conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        conf.status = WifiConfiguration.Status.ENABLED;
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        conf.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.TKIP);
        conf.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.CCMP);
        conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        conf.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
    }
    String securityDetails = securityDetailParam;
    if (securityDetails
            .equalsIgnoreCase(Constants.NETWROK_ADDITIONAL_SECURITY_TKIP)) {
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        conf.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.TKIP);
    } else if (securityDetails
            .equalsIgnoreCase(Constants.NETWROK_ADDITIONAL_SECURITY_AES)) {
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        conf.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.CCMP);
    } else if (securityDetails
            .equalsIgnoreCase(Constants.NETWROK_ADDITIONAL_SECURITY_WEP)) {
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
    } else if (securityDetails
            .equalsIgnoreCase(Constants.NETWROK_ADDITIONAL_SECURITY_NONE)) {
        conf.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.NONE);
    }
    WifiManager wifiManager = (WifiManager) mContext
            .getSystemService(Context.WIFI_SERVICE);

    int newNetworkId = wifiManager.addNetwork(conf);
        wifiManager.enableNetwork(newNetworkId, true);
        wifiManager.saveConfiguration();
        wifiManager.setWifiEnabled(true);
}

This is working example

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Eavesdropping on a WPA2 (PSK) network

From Dev

Connect Android device to Macbook hotspot (via Wifi)

From Dev

Unable to connect to a specific Wifi network programmatically on Android

From Dev

how can I to determine whether the device is open wifi hotspot on android

From Dev

How to set secured hotspot in android (with password)

From Dev

Unable to connect to wifi, but able to connect to android hotspot

From Dev

Re: Connect to a wifi network programmatically

From Dev

Re: Connect to a wifi network programmatically

From Dev

How does Google Chromecast connect to secured wifi?

From Dev

How to connect to WiFi programmatically

From Dev

How to Stream Media(Audio/Video) Across Multiple Android device over Wifi or Wifi Hotspot?

From Dev

How to create wifi hotspot from ethernet network?

From Dev

How to programmatically turn on WiFi on Android device via react native?

From Dev

Android connect to Wifi programmatically if wifi name match

From Dev

Android: Turn On/Off WiFi Hotspot Programmatically on Android Marshmallow (6.0)

From Dev

Automatically connect to wifi network in android?

From Dev

How to connect win7 laptops and android device using wifi

From Dev

How to programmatically pair and connect a HID bluetooth device(Bluetooth Keyboard) on Android

From Dev

How to working WiFi hotspot in Android 5.0

From Dev

How to working WiFi hotspot in Android 5.0

From Dev

How to connect to an available WIFI network through our application in android?

From Dev

How can i find programmatically iPhone device connected 3G network or Wifi in iOS7

From Dev

Wifi hotspot to connect to Android using Broadcom 43xx

From Dev

How to create wifi hotspot on Ubuntu 14.04 that is visible to every device?

From Dev

How to connect to a wireless network programmatically?

From Java

Connect to WiFi Access Point programmatically with Android 10

From Dev

How to create Hotspot in Android Virtual Device?

From Dev

Connect to Acquisition unit(WIFI device) from iPhone/iPad programmatically

From Dev

Finding another Android device on WiFi network

Related Related

  1. 1

    Eavesdropping on a WPA2 (PSK) network

  2. 2

    Connect Android device to Macbook hotspot (via Wifi)

  3. 3

    Unable to connect to a specific Wifi network programmatically on Android

  4. 4

    how can I to determine whether the device is open wifi hotspot on android

  5. 5

    How to set secured hotspot in android (with password)

  6. 6

    Unable to connect to wifi, but able to connect to android hotspot

  7. 7

    Re: Connect to a wifi network programmatically

  8. 8

    Re: Connect to a wifi network programmatically

  9. 9

    How does Google Chromecast connect to secured wifi?

  10. 10

    How to connect to WiFi programmatically

  11. 11

    How to Stream Media(Audio/Video) Across Multiple Android device over Wifi or Wifi Hotspot?

  12. 12

    How to create wifi hotspot from ethernet network?

  13. 13

    How to programmatically turn on WiFi on Android device via react native?

  14. 14

    Android connect to Wifi programmatically if wifi name match

  15. 15

    Android: Turn On/Off WiFi Hotspot Programmatically on Android Marshmallow (6.0)

  16. 16

    Automatically connect to wifi network in android?

  17. 17

    How to connect win7 laptops and android device using wifi

  18. 18

    How to programmatically pair and connect a HID bluetooth device(Bluetooth Keyboard) on Android

  19. 19

    How to working WiFi hotspot in Android 5.0

  20. 20

    How to working WiFi hotspot in Android 5.0

  21. 21

    How to connect to an available WIFI network through our application in android?

  22. 22

    How can i find programmatically iPhone device connected 3G network or Wifi in iOS7

  23. 23

    Wifi hotspot to connect to Android using Broadcom 43xx

  24. 24

    How to create wifi hotspot on Ubuntu 14.04 that is visible to every device?

  25. 25

    How to connect to a wireless network programmatically?

  26. 26

    Connect to WiFi Access Point programmatically with Android 10

  27. 27

    How to create Hotspot in Android Virtual Device?

  28. 28

    Connect to Acquisition unit(WIFI device) from iPhone/iPad programmatically

  29. 29

    Finding another Android device on WiFi network

HotTag

Archive