Asigne una dirección IP estática para la red Wifi en Android 3.xy 4.x

Estoy trabajando en un proyecto y debería haber una funcionalidad para configurar la dirección IP estática (DNS, máscara de red, puerta de enlace) paraWifi Si el usuario lo quiere.

Mi solución inicial y actual. es un uso deandroid.provider.Settings.System clase que permite esta función, pero esta solución funciona correctamente solo para dispositivos Android 2.x.

Es bueno, definitivamente no estoy en cero, pero sería bueno hacerlo funcionar también para versiones más altas del sistema operativo Android. No sabe exactamente por qué no funciona.

Si utilizo este método simple para verificar el estado real:

public static final boolean hasStaticIp(Context c) {
    try {
        return Settings.System.getInt(c.getContentResolver(), 
                                        Settings.System.WIFI_USE_STATIC_IP) == 1;
    }
    catch (SettingNotFoundException e) {
        Log.i(TAG, "Settings not found (" + e.geMessage() + ")");
        return false;
    }
}

devuelve verdadero tanto para Android 2.x como para Android 4.x pero en el segundo caso, los cambios definitivamente no se reflejan enWifi encontréEsta es una solución poco codificada. pero no funcionó como se esperaba.

¿Hay alguien que se enfrente al mismo problema?

Estaré encantado con cualquier solución que funcione y también con dispositivos rooteados (quizás algún comando en Linux) ya que es fácil verificar el estado de si el teléfono celular está o no rooteado.

Gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta