接続マネージャークラスを使用してネットワーク情報を取得します。ネットワークタイプがWifiまたはイーサネットのどちらであるかを取得します。しかし、私のネットワークタイプがWifiの場合、静的か動的かを知りたいです。
誰かがこれで私を助けることができますか
接続マネージャークラスを使用してネットワーク情報を取得します。ネットワークタイプがWifiまたはイーサネットのどちらであるかを取得します。しかし、私のネットワークタイプがWifiの場合、静的か動的かを知りたいです。
誰かがこれで私を助けることができますか
以下に、このスレッドから適用された単純な (最適化されていない) コードを見つけることができます。コードは Android 4.0 用に記述されています。
ユーザー権限を追加することを忘れないでください。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
方法:
public String getIpAssignment(){
String myenumvalue="";
WifiConfiguration wifiConf = null;
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();
List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();
for (WifiConfiguration conf : configuredNetworks){
if (conf.networkId == connectionInfo.getNetworkId()){
wifiConf = conf;
break;
}
}
if(wifiConf != null){
try {
Object Enumer = getDeclaredField(wifiConf, "ipAssignment");
myenumvalue = Enumer.toString();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return myenumvalue;
}
ipAssignment から列挙型フィールドの 1 つを返します。静的 | DHCP