Como configurar um endereço IP estático, máscara de rede, gateway de forma programática no Android 3.x ou 4.x

Eu verifiquei na pergunta de estouro de pilhaAPI para configurar endereços IP estáticos em um aplicativo Android.

Funciona até o Android 2.3. No entanto, não há sorte em um nível de API mais alto. Por exemplo, eu coloquei a configuração

<code>android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1");        
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "192.168.0.100");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.254");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.254");
</code>

Mas eu volto para verificar por:

<code>Setting --> Wi-Fi --> Long Press Access Point SSID --> Modify Network --> check Show advanced options
</code>

oIP Settings campo ainda é indicadoDHCP mas nãoStatic.

É verdade que eu posso usarandroid.provider.Settings.System.getString() para recuperar o que eu defini. Isso prova que a configuração é salva em algum lugar, mas o sistema simplesmente a ignora.

O sistema usa a configuração diferente deandroid.provider.Settings.System no Android 3.xe 4.x como a configuração é definida por ponto de acesso SSID. Posso modificar a configuração em um SSID da mesma forma que funciona no Android 2.3?

questionAnswers(6)

yourAnswerToTheQuestion