[MS45] Expose SystemApis to query summary and history with template

This includes:
1. queryDetailsForDevice: get history of network stats that
   matches the given template.
2. querySummaryForDevice: similar to the above one, but the
   result is aggregated over time.
3. queryDetailsForUidTagState: get history of uid stats that
   matches the given template, uid, tag and other conditions.
4. querySummary: similar to the above one, but the
   result is aggregated over time.
5. queryTaggedSummary: similar to the above one, but only
   return tagged data.

Test: TH
Bug: 204830222
Change-Id: Ic18010822a33e340b954e9c53dc515f3b6224d6d
This commit is contained in:
Junyu Lai
2022-01-07 14:46:26 +00:00
parent 304be56bdf
commit 685a738d19
2 changed files with 15 additions and 5 deletions

View File

@@ -56,6 +56,11 @@ package android.app.usage {
public class NetworkStatsManager { public class NetworkStatsManager {
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void forceUpdate(); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void forceUpdate();
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyNetworkStatus(@NonNull java.util.List<android.net.Network>, @NonNull java.util.List<android.net.NetworkStateSnapshot>, @Nullable String, @NonNull java.util.List<android.net.UnderlyingNetworkInfo>); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void notifyNetworkStatus(@NonNull java.util.List<android.net.Network>, @NonNull java.util.List<android.net.NetworkStateSnapshot>, @Nullable String, @NonNull java.util.List<android.net.UnderlyingNetworkInfo>);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryDetailsForDevice(@NonNull android.net.NetworkTemplate, long, long);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryDetailsForUidTagState(@NonNull android.net.NetworkTemplate, long, long, int, int, int) throws java.lang.SecurityException;
method @NonNull @WorkerThread public android.app.usage.NetworkStats querySummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException;
method @NonNull @WorkerThread public android.app.usage.NetworkStats.Bucket querySummaryForDevice(@NonNull android.net.NetworkTemplate, long, long);
method @NonNull @WorkerThread public android.app.usage.NetworkStats queryTaggedSummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException;
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setDefaultGlobalAlert(long); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setDefaultGlobalAlert(long);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setPollOnOpen(boolean); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setPollOnOpen(boolean);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setStatsProviderWarningAndLimitAsync(@NonNull String, long, long); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setStatsProviderWarningAndLimitAsync(@NonNull String, long, long);

View File

@@ -211,9 +211,10 @@ public class NetworkStatsManager {
*/ */
@NonNull @NonNull
@WorkerThread @WorkerThread
// @SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
public Bucket querySummaryForDevice(@NonNull NetworkTemplate template, public Bucket querySummaryForDevice(@NonNull NetworkTemplate template,
long startTime, long endTime) { long startTime, long endTime) {
Objects.requireNonNull(template);
try { try {
NetworkStats stats = NetworkStats stats =
new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
@@ -385,10 +386,11 @@ public class NetworkStatsManager {
* @hide * @hide
*/ */
@NonNull @NonNull
// @SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
@WorkerThread @WorkerThread
public NetworkStats querySummary(@NonNull NetworkTemplate template, long startTime, public NetworkStats querySummary(@NonNull NetworkTemplate template, long startTime,
long endTime) throws SecurityException { long endTime) throws SecurityException {
Objects.requireNonNull(template);
try { try {
NetworkStats result = NetworkStats result =
new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
@@ -418,10 +420,11 @@ public class NetworkStatsManager {
* @hide * @hide
*/ */
@NonNull @NonNull
// @SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
@WorkerThread @WorkerThread
public NetworkStats queryTaggedSummary(@NonNull NetworkTemplate template, long startTime, public NetworkStats queryTaggedSummary(@NonNull NetworkTemplate template, long startTime,
long endTime) throws SecurityException { long endTime) throws SecurityException {
Objects.requireNonNull(template);
try { try {
NetworkStats result = NetworkStats result =
new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
@@ -453,10 +456,11 @@ public class NetworkStatsManager {
* @hide * @hide
*/ */
@NonNull @NonNull
// @SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
@WorkerThread @WorkerThread
public NetworkStats queryDetailsForDevice(@NonNull NetworkTemplate template, public NetworkStats queryDetailsForDevice(@NonNull NetworkTemplate template,
long startTime, long endTime) { long startTime, long endTime) {
Objects.requireNonNull(template);
try { try {
final NetworkStats result = final NetworkStats result =
new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
@@ -580,10 +584,11 @@ public class NetworkStatsManager {
* @hide * @hide
*/ */
@NonNull @NonNull
// @SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
@WorkerThread @WorkerThread
public NetworkStats queryDetailsForUidTagState(@NonNull NetworkTemplate template, public NetworkStats queryDetailsForUidTagState(@NonNull NetworkTemplate template,
long startTime, long endTime, int uid, int tag, int state) throws SecurityException { long startTime, long endTime, int uid, int tag, int state) throws SecurityException {
Objects.requireNonNull(template);
try { try {
final NetworkStats result = new NetworkStats( final NetworkStats result = new NetworkStats(
mContext, template, mFlags, startTime, endTime, mService); mContext, template, mFlags, startTime, endTime, mService);