diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 28ac784937..4100e74de8 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -497,6 +497,9 @@ public class ConnectivityService extends IConnectivityManager.Stub private final IpConnectivityLog mMetricsLog; + @GuardedBy("mBandwidthRequests") + private final SparseArray mBandwidthRequests = new SparseArray(10); + @VisibleForTesting final MultinetworkPolicyTracker mMultinetworkPolicyTracker; @@ -2069,6 +2072,18 @@ public class ConnectivityService extends IConnectivityManager.Stub pw.println("currently holding WakeLock for: " + (duration / 1000) + "s"); } mWakelockLogs.reverseDump(fd, pw, args); + + pw.println(); + pw.println("bandwidth update requests (by uid):"); + pw.increaseIndent(); + synchronized (mBandwidthRequests) { + for (int i = 0; i < mBandwidthRequests.size(); i++) { + pw.println("[" + mBandwidthRequests.keyAt(i) + + "]: " + mBandwidthRequests.valueAt(i)); + } + } + pw.decreaseIndent(); + pw.decreaseIndent(); } } @@ -4223,6 +4238,14 @@ public class ConnectivityService extends IConnectivityManager.Stub } if (nai != null) { nai.asyncChannel.sendMessage(android.net.NetworkAgent.CMD_REQUEST_BANDWIDTH_UPDATE); + synchronized (mBandwidthRequests) { + final int uid = Binder.getCallingUid(); + Integer uidReqs = mBandwidthRequests.get(uid); + if (uidReqs == null) { + uidReqs = new Integer(0); + } + mBandwidthRequests.put(uid, ++uidReqs); + } return true; } return false; @@ -5803,4 +5826,4 @@ public class ConnectivityService extends IConnectivityManager.Stub pw.println(" Get airplane mode."); } } -} \ No newline at end of file +}