diff options
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiInfo.java | 18 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 13 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 2 |
4 files changed, 32 insertions, 2 deletions
diff --git a/api/current.txt b/api/current.txt index a437640278b7..708e03583663 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11916,6 +11916,7 @@ package android.net.wifi { field public static final java.lang.String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state"; field public static final java.lang.String EXTRA_SUPPLICANT_CONNECTED = "connected"; field public static final java.lang.String EXTRA_SUPPLICANT_ERROR = "supplicantError"; + field public static final java.lang.String EXTRA_WIFI_INFO = "wifiInfo"; field public static final java.lang.String EXTRA_WIFI_STATE = "wifi_state"; field public static final java.lang.String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED"; field public static final java.lang.String NETWORK_STATE_CHANGED_ACTION = "android.net.wifi.STATE_CHANGE"; diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java index e3661bfa8d35..7bb927b96ee0 100644 --- a/wifi/java/android/net/wifi/WifiInfo.java +++ b/wifi/java/android/net/wifi/WifiInfo.java @@ -81,6 +81,24 @@ public class WifiInfo implements Parcelable { mHiddenSSID = false; } + /** + * Copy constructor + * @hide + */ + public WifiInfo(WifiInfo source) { + if (source != null) { + mSupplicantState = source.mSupplicantState; + mBSSID = source.mBSSID; + mSSID = source.mSSID; + mNetworkId = source.mNetworkId; + mHiddenSSID = source.mHiddenSSID; + mRssi = source.mRssi; + mLinkSpeed = source.mLinkSpeed; + mIpAddress = source.mIpAddress; + mMacAddress = source.mMacAddress; + } + } + void setSSID(String SSID) { mSSID = SSID; // network is considered not hidden by default diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 9d1bdd4941a9..cd6621f9bd14 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -230,11 +230,13 @@ public class WifiManager { /** * Broadcast intent action indicating that the state of Wi-Fi connectivity * has changed. One extra provides the new state - * in the form of a {@link android.net.NetworkInfo} object. If the new state is - * CONNECTED, a second extra may provide the BSSID of the access point, + * in the form of a {@link android.net.NetworkInfo} object. If the new + * state is CONNECTED, additional extras may provide the BSSID and WifiInfo of + * the access point. * as a {@code String}. * @see #EXTRA_NETWORK_INFO * @see #EXTRA_BSSID + * @see #EXTRA_WIFI_INFO */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String NETWORK_STATE_CHANGED_ACTION = "android.net.wifi.STATE_CHANGE"; @@ -252,6 +254,13 @@ public class WifiManager { */ public static final String EXTRA_BSSID = "bssid"; /** + * The lookup key for a {@link android.net.wifi.WifiInfo} object giving the + * information about the access point to which we are connected. Only present + * when the new state is CONNECTED. Retrieve with + * {@link android.content.Intent#getParcelableExtra(String)}. + */ + public static final String EXTRA_WIFI_INFO = "wifiInfo"; + /** * Broadcast intent action indicating that the state of establishing a connection to * an access point has changed.One extra provides the new * {@link SupplicantState}. Note that the supplicant state is Wi-Fi specific, and diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 8c28319b1590..12efeb1e59f1 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1374,6 +1374,8 @@ public class WifiStateMachine extends StateMachine { intent.putExtra(WifiManager.EXTRA_LINK_PROPERTIES, new LinkProperties (mLinkProperties)); if (bssid != null) intent.putExtra(WifiManager.EXTRA_BSSID, bssid); + if (mNetworkInfo.getState() == NetworkInfo.State.CONNECTED) + intent.putExtra(WifiManager.EXTRA_WIFI_INFO, new WifiInfo(mWifiInfo)); mContext.sendStickyBroadcast(intent); } |