diff options
author | Jeff Sharkey <jsharkey@android.com> | 2012-01-30 11:16:20 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2012-01-30 11:21:35 -0800 |
commit | 5e61331da59921413a8e2a144146a8451a054020 (patch) | |
tree | b8526bf1c683e0910c69580560e16bdfc702781e | |
parent | d53da8efa7a618562615df35ffc674620cbe2b26 (diff) | |
download | frameworks_base-5e61331da59921413a8e2a144146a8451a054020.zip frameworks_base-5e61331da59921413a8e2a144146a8451a054020.tar.gz frameworks_base-5e61331da59921413a8e2a144146a8451a054020.tar.bz2 |
Move away from deprecated NetworkInfo extra.
Because the NetworkInfo included in CONNECTIVITY_ACTION broadcast
extra does not reflect the state applicable to the calling UID, and
the last sticky broadcast may have stale state, transition to calling
ConnectivityManager.getActiveNetworkInfo() directly.
Change-Id: I86b316fbedd0273585ad5f1248b091bc3a3a5520
5 files changed, 18 insertions, 11 deletions
diff --git a/core/java/android/webkit/Network.java b/core/java/android/webkit/Network.java index 30bbb04..ee9b949 100644 --- a/core/java/android/webkit/Network.java +++ b/core/java/android/webkit/Network.java @@ -169,7 +169,9 @@ class Network { if (!ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) return; - NetworkInfo info = (NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); + final ConnectivityManager connManager = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + final NetworkInfo info = connManager.getActiveNetworkInfo(); if (info != null) mRoaming = info.isRoaming(); }; diff --git a/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java b/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java index a5e5ab0..dfcbba9 100644 --- a/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java +++ b/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java @@ -146,10 +146,10 @@ public class ConnectionUtil { Log.v("ConnectivityReceiver", "onReceive() called with " + intent); return; } - if (intent.hasExtra(ConnectivityManager.EXTRA_NETWORK_INFO)) { - mNetworkInfo = (NetworkInfo) - intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); - } + + final ConnectivityManager connManager = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + mNetworkInfo = connManager.getActiveNetworkInfo(); if (intent.hasExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO)) { mOtherNetworkInfo = (NetworkInfo) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index d46ab6c..d0f72a4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -850,8 +850,10 @@ public class NetworkController extends BroadcastReceiver { Slog.d(TAG, "updateConnectivity: intent=" + intent); } - NetworkInfo info = (NetworkInfo)(intent.getParcelableExtra( - ConnectivityManager.EXTRA_NETWORK_INFO)); + final ConnectivityManager connManager = (ConnectivityManager) mContext + .getSystemService(Context.CONNECTIVITY_SERVICE); + final NetworkInfo info = connManager.getActiveNetworkInfo(); + int connectionStatus = intent.getIntExtra(ConnectivityManager.EXTRA_INET_CONDITION, 0); if (CHATTY) { diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java index 56afe7f..8cb9d99b 100644 --- a/services/java/com/android/server/LocationManagerService.java +++ b/services/java/com/android/server/LocationManagerService.java @@ -1962,8 +1962,10 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } else { mNetworkState = LocationProvider.TEMPORARILY_UNAVAILABLE; } - NetworkInfo info = - (NetworkInfo)intent.getExtra(ConnectivityManager.EXTRA_NETWORK_INFO); + + final ConnectivityManager connManager = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + final NetworkInfo info = connManager.getActiveNetworkInfo(); // Notify location providers of current network state synchronized (mLock) { diff --git a/services/java/com/android/server/NetworkTimeUpdateService.java b/services/java/com/android/server/NetworkTimeUpdateService.java index f7fe39e..a7d1992 100644 --- a/services/java/com/android/server/NetworkTimeUpdateService.java +++ b/services/java/com/android/server/NetworkTimeUpdateService.java @@ -234,8 +234,9 @@ public class NetworkTimeUpdateService { String action = intent.getAction(); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) { // There is connectivity - NetworkInfo netInfo = (NetworkInfo)intent.getParcelableExtra( - ConnectivityManager.EXTRA_NETWORK_INFO); + final ConnectivityManager connManager = (ConnectivityManager) context + .getSystemService(Context.CONNECTIVITY_SERVICE); + final NetworkInfo netInfo = connManager.getActiveNetworkInfo(); if (netInfo != null) { // Verify that it's a WIFI connection if (netInfo.getState() == NetworkInfo.State.CONNECTED && |