EAP Network, how to connect?

0

What I want is to connect to an EAP network that is in my university through my apk but I do not know how to configure the proxy. Look:

/**WIFI PROXY*/

public static Object getField(Object obj, String name)
        throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{
    Field f = obj.getClass().getField(name);
    Object out = f.get(obj);
    return out;
}

public static Object getDeclaredField(Object obj, String name)
        throws SecurityException, NoSuchFieldException,
        IllegalArgumentException, IllegalAccessException {
    Field f = obj.getClass().getDeclaredField(name);
    f.setAccessible(true);
    Object out = f.get(obj);
    return out;
}

public static void setEnumField(Object obj, String value, String name)
        throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{
    Field f = obj.getClass().getField(name);
    f.set(obj, Enum.valueOf((Class<Enum>) f.getType(), value));
}

public static void setProxySettings(String assign , WifiConfiguration wifiConf)
        throws SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException{
    setEnumField(wifiConf, assign, "proxySettings");
}

void setWifiProxySettings()
{
    if(null == conf)
        return;

    try
    {
        //get the link properties from the wifi configuration
        Object linkProperties = getDeclaredField(conf, "linkProperties");
        if(null == linkProperties)
            return;

        //get the setHttpProxy method for LinkProperties
        Class proxyPropertiesClass = Class.forName("android.net.ProxyProperties");
        Class[] setHttpProxyParams = new Class[1];
        setHttpProxyParams[0] = proxyPropertiesClass;
        Class lpClass = Class.forName("android.net.LinkProperties");
        Method setHttpProxy = lpClass.getDeclaredMethod("setHttpProxy", setHttpProxyParams);
        setHttpProxy.setAccessible(true);

        //get ProxyProperties constructor
        Class[] proxyPropertiesCtorParamTypes = new Class[3];
        proxyPropertiesCtorParamTypes[0] = String.class;
        proxyPropertiesCtorParamTypes[1] = int.class;
        proxyPropertiesCtorParamTypes[2] = String.class;

        Constructor proxyPropertiesCtor = proxyPropertiesClass.getConstructor(proxyPropertiesCtorParamTypes);

        //create the parameters for the constructor
        Object[] proxyPropertiesCtorParams = new Object[3];
        proxyPropertiesCtorParams[0] = "orion.ucf.edu.cu";
        proxyPropertiesCtorParams[1] = 3128;
        proxyPropertiesCtorParams[2] = "*.ucf.edu.cu";

        //create a new object using the params
        Object proxySettings = proxyPropertiesCtor.newInstance(proxyPropertiesCtorParams);

        //pass the new object to setHttpProxy
        Object[] params = new Object[1];
        params[0] = proxySettings;
        setHttpProxy.invoke(linkProperties, params);

        setProxySettings("DHCP", conf);

        //save the settings
        wifiManager.updateNetwork(conf);
        /*wifiManager.disconnect();
        wifiManager.reconnect();*/
    }
    catch(Exception e)
    {
        Log.d("Porque se jodio", e.getMessage());
    }
}

The wifimanager does not have any field that is linkProperties. I searched the internet but it did not work. I need help.

To make them understand better

final Dialog builder = new Dialog(this);
            View v = LayoutInflater.from(this).inflate(R.layout.login_show_eap, null);
            builder.setContentView(v);

            TextView textView = (TextView) v.findViewById(R.id.red_info);
            final TextInputEditText textUser = (TextInputEditText) v.findViewById(R.id.user_name_eap);
            final TextInputEditText textPassw = (TextInputEditText) v.findViewById(R.id.user_passw_eap);
            Button btnAccept = (Button) v.findViewById(R.id.btnLoginShowEap);

            textView.setText(scanResult.SSID);

            final String[] identity = new String[1];
            final String[] passw = new String[1];

            btnAccept.setOnClickListener(new View.OnClickListener() {
                @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
                @Override
                public void onClick(View view) {
                    if (textUser.getText().toString().isEmpty()) {
                        textUser.setError(getString(R.string.error_field_required));
                    } else if (textPassw.getText().toString().isEmpty()) {
                        textPassw.setError(getString(R.string.error_field_required));
                    } else {
                        passw[0] = textPassw.getText().toString();
                        identity[0] = textUser.getText().toString();
                        networkPass = passw[0];
                        networkIdentity = identity[0];
                        builder.dismiss();
                        helperConnect(scanResult);
                    }
                }
            });
            builder.show();
}

When I do that I want to tell you that you also configure the proxy please help ...

    
asked by Alex Rivas 23.04.2018 в 14:50
source

0 answers