diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9b6977de106..0a567f5f367 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -823,6 +823,9 @@
MAC address
+
+ IP address
+
Scanning\u2026
diff --git a/res/xml/wifi_advanced_settings.xml b/res/xml/wifi_advanced_settings.xml
index 3e0ff053f36..e603be9202f 100644
--- a/res/xml/wifi_advanced_settings.xml
+++ b/res/xml/wifi_advanced_settings.xml
@@ -38,6 +38,11 @@
android:title="@string/wifi_advanced_mac_address_title"
/>
+
+
diff --git a/src/com/android/settings/wifi/AdvancedSettings.java b/src/com/android/settings/wifi/AdvancedSettings.java
index ff485deeabc..cca10da6eac 100644
--- a/src/com/android/settings/wifi/AdvancedSettings.java
+++ b/src/com/android/settings/wifi/AdvancedSettings.java
@@ -39,6 +39,7 @@ public class AdvancedSettings extends PreferenceActivity
implements Preference.OnPreferenceChangeListener {
private static final String KEY_MAC_ADDRESS = "mac_address";
+ private static final String KEY_CURRENT_IP_ADDRESS = "current_ip_address";
private static final String KEY_USE_STATIC_IP = "use_static_ip";
private static final String KEY_NUM_CHANNELS = "num_channels";
private static final String KEY_SLEEP_POLICY = "sleep_policy";
@@ -98,7 +99,7 @@ public class AdvancedSettings extends PreferenceActivity
*/
//initNumChannelsPreference();
initSleepPolicyPreference();
- refreshMacAddress();
+ refreshWifiInfo();
}
private void initNumChannelsPreference() {
@@ -296,7 +297,7 @@ public class AdvancedSettings extends PreferenceActivity
}
}
- private void refreshMacAddress() {
+ private void refreshWifiInfo() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
@@ -304,6 +305,20 @@ public class AdvancedSettings extends PreferenceActivity
String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress
: getString(R.string.status_unavailable));
+
+ Preference wifiIpAddressPref = findPreference(KEY_CURRENT_IP_ADDRESS);
+ String ipAddress = null;
+ if (wifiInfo != null) {
+ long addr = wifiInfo.getIpAddress();
+ if (addr != 0) {
+ // handle negative values whe first octet > 127
+ if (addr < 0) addr += 0x100000000L;
+ ipAddress = String.format("%d.%d.%d.%d",
+ addr & 0xFF, (addr >> 8) & 0xFF, (addr >> 16) & 0xFF, (addr >> 24) & 0xFF);
+ }
+ }
+ wifiIpAddressPref.setSummary(ipAddress == null ?
+ getString(R.string.status_unavailable) : ipAddress);
}
-
+
}