From 47905d1f1d4586849be9c490ecceeaa2d0056cbb Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 6 Aug 2012 11:41:50 -0700 Subject: [PATCH] Include network type that caused broadcast. Network type can be obtained through EXTRA_NETWORK_INFO, but offer it as first-class extra since the returned NetworkInfo is deprecated. Bug: 6936247 Change-Id: Ief59577afd2bd930f0f4c5650b413feef86bfbc3 --- core/java/android/net/ConnectivityManager.java | 10 ++++++++++ .../java/com/android/server/ConnectivityService.java | 3 +++ 2 files changed, 13 insertions(+) diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index fa1ff85212..d30ef04628 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -89,10 +89,20 @@ public class ConnectivityManager { * should always obtain network information through * {@link #getActiveNetworkInfo()} or * {@link #getAllNetworkInfo()}. + * @see #EXTRA_NETWORK_TYPE */ @Deprecated public static final String EXTRA_NETWORK_INFO = "networkInfo"; + /** + * Network type which triggered a {@link #CONNECTIVITY_ACTION} broadcast. + * Can be used with {@link #getNetworkInfo(int)} to get {@link NetworkInfo} + * state based on the calling application. + * + * @see android.content.Intent#getIntExtra(String, int) + */ + public static final String EXTRA_NETWORK_TYPE = "networkType"; + /** * The lookup key for a boolean that indicates whether a connect event * is for a network to which the connectivity manager was failing over diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index a550f34ce9..22acfbf03d 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -1622,6 +1622,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION); intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info); + intent.putExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, info.getType()); if (info.isFailover()) { intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true); info.setFailover(false); @@ -1748,6 +1749,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { private Intent makeGeneralIntent(NetworkInfo info, String bcastType) { Intent intent = new Intent(bcastType); intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info); + intent.putExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, info.getType()); if (info.isFailover()) { intent.putExtra(ConnectivityManager.EXTRA_IS_FAILOVER, true); info.setFailover(false); @@ -1798,6 +1800,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION); intent.putExtra(ConnectivityManager.EXTRA_NETWORK_INFO, info); + intent.putExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, info.getType()); if (getActiveNetworkInfo() == null) { intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true); }