androidでstatic ipを割り当てるとき、
Settings.System.putString(getContentResolver(), Settings.System.WIFI_STATIC_IP, IPアドレス)
Settings.System.putString(getContentResolver(), Settings.System.WIFI_STATIC_GATEWAY,Gatewayアドレス)
Settings.System.putString(getContentResolver(), Settings.System.WIFI_STATIC_NETMASK, ネットマスク)
Settings.System.putString(getContentResolver(),Settings.System.WIFI_STATIC_DNS1, DNS1アドレス)
Settings.System.putString(getContentResolver(), Settings.System.WIFI_STATIC_DNS2, DNS2アドレス) Settings.System.putString(getContentResolver(), Settings.System.WIFI_USE_STATIC_IP, "1")
ってな感じでいいと思うんだけど、Android4.0だとダメみたい。
Android4.0以前だとstatic ipはWifiConfigurationとは別にもっていたんだけど
Android4.0から(?)WifiConfigurationに紐づく。
4.0のWifiConfiguration.javaを見ると、
public IpAssignment ipAssignment;
public ProxySettings proxySettings;
public LinkProperties linkProperties;
というメンバが登場。
こいつらをセットアップすれば良さそうなんだけど、documentには公開されてないっぽいし
rev16のsdkでもコンパイルできないっぽい。IpAssignmentなんて知らない!っていわれる。
いじっちゃダメというオーラを感じるもののまぁいいやということで
IpAssignmentとLinkPropertiesを知ってるクラスローダを頂戴しまして、
そのクラスローダから、IpAssignmentやらLinkPropertiesやらを
ロードして必要事項をセットしてWifiConfigurationにセットすればいいんでないかい?
ということでやってみたら無事できたんだけど
いいのかなぁ・・・
.