diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 67c01e50bb..4d7b2ef8d4 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2798,11 +2798,13 @@ public class ConnectivityService extends IConnectivityManager.Stub { enforceConnectivityInternalPermission(); if (TextUtils.isEmpty(iface)) return ConnectivityManager.TYPE_NONE; - for (NetworkStateTracker tracker : mNetTrackers) { - if (tracker != null) { - LinkProperties lp = tracker.getLinkProperties(); - if (lp != null && iface.equals(lp.getInterfaceName())) { - return tracker.getNetworkInfo().getType(); + + synchronized(mNetworkForNetId) { + for (int i = 0; i < mNetworkForNetId.size(); i++) { + NetworkAgentInfo nai = mNetworkForNetId.valueAt(i); + LinkProperties lp = nai.linkProperties; + if (lp != null && iface.equals(lp.getInterfaceName()) && nai.networkInfo != null) { + return nai.networkInfo.getType(); } } }