[DU03]Remove INetworkStatsService from BatteryStatsImpl

BatteryStatsImpl is using INetworkStatsService APIs, which
cannot be accessed after moving into the mainline module. So, replace
and remove those hidden API usages.

Bug: 210066922
Test: atest BatteryStatsImplTest WifiPowerCalculatorTest
            MobileRadioPowerCalculatorTest
CTS-Coverage-Bug: 213437796

  (cherry-picked from ag/16548638)

Change-Id: I584897ff8ba303c717a9df3756c9f6778c1cfb10
Merged-In: I584897ff8ba303c717a9df3756c9f6778c1cfb10
This commit is contained in:
lifr
2021-12-23 15:13:29 +08:00
committed by Junyu Lai
parent 5366b82996
commit c9dedfbe95
2 changed files with 27 additions and 0 deletions

View File

@@ -54,6 +54,7 @@ import com.android.net.module.util.NetworkIdentityUtils;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
/** /**
* Provides access to network usage history and statistics. Usage data is collected in * Provides access to network usage history and statistics. Usage data is collected in
@@ -535,6 +536,31 @@ public class NetworkStatsManager {
return result; return result;
} }
/**
* Query realtime network usage statistics details with interfaces constrains.
* Return snapshot of current UID statistics, including any {@link TrafficStats#UID_TETHERING},
* video calling data usage and count of network operations that set by
* {@link TrafficStats#incrementOperationCount}. The returned data doesn't include any
* statistics that is reported by {@link NetworkStatsProvider}.
*
* @param requiredIfaces A list of interfaces the stats should be restricted to, or
* {@link NetworkStats#INTERFACES_ALL}.
*
* @hide
*/
//@SystemApi
@RequiresPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK)
@NonNull public android.net.NetworkStats getDetailedUidStats(
@NonNull Set<String> requiredIfaces) {
Objects.requireNonNull(requiredIfaces, "requiredIfaces cannot be null");
try {
return mService.getDetailedUidStats(requiredIfaces.toArray(new String[0]));
} catch (RemoteException e) {
if (DBG) Log.d(TAG, "Remote exception when get detailed uid stats");
throw e.rethrowFromSystemServer();
}
}
/** @hide */ /** @hide */
public void registerUsageCallback(NetworkTemplate template, int networkType, public void registerUsageCallback(NetworkTemplate template, int networkType,
long thresholdBytes, UsageCallback callback, @Nullable Handler handler) { long thresholdBytes, UsageCallback callback, @Nullable Handler handler) {

View File

@@ -922,6 +922,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
@Override @Override
public NetworkStats getDetailedUidStats(String[] requiredIfaces) { public NetworkStats getDetailedUidStats(String[] requiredIfaces) {
enforceAnyPermissionOf(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
try { try {
final String[] ifacesToQuery = final String[] ifacesToQuery =
mStatsFactory.augmentWithStackedInterfaces(requiredIfaces); mStatsFactory.augmentWithStackedInterfaces(requiredIfaces);