Merge "[MS44.1] Add API to query tagged UID summary" am: 0a0c20df11 am: 193c85f48a am: 32cfcbb0c0 am: d66d62778a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1940814 Change-Id: I2c9ea81afa538ce704a0904c28c70ab9c98d0fa7
This commit is contained in:
@@ -544,6 +544,15 @@ public final class NetworkStats implements AutoCloseable {
|
||||
mEnumerationIndex = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Collects tagged summary results and sets summary enumeration mode.
|
||||
* @throws RemoteException
|
||||
*/
|
||||
void startTaggedSummaryEnumeration() throws RemoteException {
|
||||
mSummary = mSession.getTaggedSummaryForAllUid(mTemplate, mStartTimeStamp, mEndTimeStamp);
|
||||
mEnumerationIndex = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Collects history results for uid and resets history enumeration index.
|
||||
*/
|
||||
|
||||
@@ -369,7 +369,7 @@ public class NetworkStatsManager {
|
||||
* @return Statistics which is described above.
|
||||
* @hide
|
||||
*/
|
||||
@Nullable
|
||||
@NonNull
|
||||
// @SystemApi(client = MODULE_LIBRARIES)
|
||||
@WorkerThread
|
||||
public NetworkStats querySummary(@NonNull NetworkTemplate template, long startTime,
|
||||
@@ -385,6 +385,39 @@ public class NetworkStatsManager {
|
||||
return null; // To make the compiler happy.
|
||||
}
|
||||
|
||||
/**
|
||||
* Query tagged network usage statistics summaries.
|
||||
*
|
||||
* The results will only include tagged traffic made by UIDs belonging to the calling user
|
||||
* profile. The results are aggregated over time, so that all buckets will have the same
|
||||
* start and end timestamps as the passed arguments. Not aggregated over state, uid,
|
||||
* default network, metered, or roaming.
|
||||
* This may take a long time, and apps should avoid calling this on their main thread.
|
||||
*
|
||||
* @param template Template used to match networks. See {@link NetworkTemplate}.
|
||||
* @param startTime Start of period, in milliseconds since the Unix epoch, see
|
||||
* {@link System#currentTimeMillis}.
|
||||
* @param endTime End of period, in milliseconds since the Unix epoch, see
|
||||
* {@link System#currentTimeMillis}.
|
||||
* @return Statistics which is described above.
|
||||
* @hide
|
||||
*/
|
||||
@NonNull
|
||||
// @SystemApi(client = MODULE_LIBRARIES)
|
||||
@WorkerThread
|
||||
public NetworkStats queryTaggedSummary(@NonNull NetworkTemplate template, long startTime,
|
||||
long endTime) throws SecurityException {
|
||||
try {
|
||||
NetworkStats result =
|
||||
new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
|
||||
result.startTaggedSummaryEnumeration();
|
||||
return result;
|
||||
} catch (RemoteException e) {
|
||||
e.rethrowFromSystemServer();
|
||||
}
|
||||
return null; // To make the compiler happy.
|
||||
}
|
||||
|
||||
/**
|
||||
* Query network usage statistics details for a given uid.
|
||||
* This may take a long time, and apps should avoid calling this on their main thread.
|
||||
|
||||
@@ -46,6 +46,10 @@ interface INetworkStatsSession {
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
NetworkStats getSummaryForAllUid(in NetworkTemplate template, long start, long end, boolean includeTags);
|
||||
|
||||
/** Return network layer usage summary per UID for tagged traffic that matches template. */
|
||||
NetworkStats getTaggedSummaryForAllUid(in NetworkTemplate template, long start, long end);
|
||||
|
||||
/** Return historical network layer stats for specific UID traffic that matches template. */
|
||||
@UnsupportedAppUsage
|
||||
NetworkStatsHistory getHistoryForUid(in NetworkTemplate template, int uid, int set, int tag, int fields);
|
||||
|
||||
Reference in New Issue
Block a user