Merge changes I325b13d5,I89719fe7
am: 31cb4583e5
Change-Id: Iaced543ab17ea87c8f701975764d957bc1b17fc7
This commit is contained in:
@@ -82,6 +82,11 @@ public class NetworkStats implements Parcelable {
|
|||||||
/** {@link #roaming} value where roaming data is accounted. */
|
/** {@link #roaming} value where roaming data is accounted. */
|
||||||
public static final int ROAMING_YES = 1;
|
public static final int ROAMING_YES = 1;
|
||||||
|
|
||||||
|
/** Denotes a request for stats at the interface level. */
|
||||||
|
public static final int STATS_PER_IFACE = 0;
|
||||||
|
/** Denotes a request for stats at the interface and UID level. */
|
||||||
|
public static final int STATS_PER_UID = 1;
|
||||||
|
|
||||||
// TODO: move fields to "mVariable" notation
|
// TODO: move fields to "mVariable" notation
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import static android.net.NetworkStats.IFACE_ALL;
|
|||||||
import static android.net.NetworkStats.SET_ALL;
|
import static android.net.NetworkStats.SET_ALL;
|
||||||
import static android.net.NetworkStats.SET_DEFAULT;
|
import static android.net.NetworkStats.SET_DEFAULT;
|
||||||
import static android.net.NetworkStats.SET_FOREGROUND;
|
import static android.net.NetworkStats.SET_FOREGROUND;
|
||||||
|
import static android.net.NetworkStats.STATS_PER_IFACE;
|
||||||
|
import static android.net.NetworkStats.STATS_PER_UID;
|
||||||
import static android.net.NetworkStats.TAG_NONE;
|
import static android.net.NetworkStats.TAG_NONE;
|
||||||
import static android.net.NetworkStats.UID_ALL;
|
import static android.net.NetworkStats.UID_ALL;
|
||||||
import static android.net.NetworkTemplate.buildTemplateMobileWildcard;
|
import static android.net.NetworkTemplate.buildTemplateMobileWildcard;
|
||||||
@@ -1042,6 +1044,11 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
|||||||
final NetworkStats xtSnapshot = getNetworkStatsXt();
|
final NetworkStats xtSnapshot = getNetworkStatsXt();
|
||||||
final NetworkStats devSnapshot = mNetworkManager.getNetworkStatsSummaryDev();
|
final NetworkStats devSnapshot = mNetworkManager.getNetworkStatsSummaryDev();
|
||||||
|
|
||||||
|
// Tethering snapshot for dev and xt stats. Counts per-interface data from tethering stats
|
||||||
|
// providers that isn't already counted by dev and XT stats.
|
||||||
|
final NetworkStats tetherSnapshot = getNetworkStatsTethering(STATS_PER_IFACE);
|
||||||
|
xtSnapshot.combineAllValues(tetherSnapshot);
|
||||||
|
devSnapshot.combineAllValues(tetherSnapshot);
|
||||||
|
|
||||||
// For xt/dev, we pass a null VPN array because usage is aggregated by UID, so VPN traffic
|
// For xt/dev, we pass a null VPN array because usage is aggregated by UID, so VPN traffic
|
||||||
// can't be reattributed to responsible apps.
|
// can't be reattributed to responsible apps.
|
||||||
@@ -1372,14 +1379,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
|||||||
final NetworkStats uidSnapshot = mNetworkManager.getNetworkStatsUidDetail(UID_ALL);
|
final NetworkStats uidSnapshot = mNetworkManager.getNetworkStatsUidDetail(UID_ALL);
|
||||||
|
|
||||||
// fold tethering stats and operations into uid snapshot
|
// fold tethering stats and operations into uid snapshot
|
||||||
final NetworkStats tetherSnapshot = getNetworkStatsTethering();
|
final NetworkStats tetherSnapshot = getNetworkStatsTethering(STATS_PER_UID);
|
||||||
uidSnapshot.combineAllValues(tetherSnapshot);
|
uidSnapshot.combineAllValues(tetherSnapshot);
|
||||||
|
|
||||||
final TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(
|
final TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(
|
||||||
Context.TELEPHONY_SERVICE);
|
Context.TELEPHONY_SERVICE);
|
||||||
|
|
||||||
// fold video calling data usage stats into uid snapshot
|
// fold video calling data usage stats into uid snapshot
|
||||||
final NetworkStats vtStats = telephonyManager.getVtDataUsage(true);
|
final NetworkStats vtStats = telephonyManager.getVtDataUsage(STATS_PER_UID);
|
||||||
if (vtStats != null) {
|
if (vtStats != null) {
|
||||||
uidSnapshot.combineAllValues(vtStats);
|
uidSnapshot.combineAllValues(vtStats);
|
||||||
}
|
}
|
||||||
@@ -1398,7 +1405,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
|||||||
Context.TELEPHONY_SERVICE);
|
Context.TELEPHONY_SERVICE);
|
||||||
|
|
||||||
// Merge video calling data usage into XT
|
// Merge video calling data usage into XT
|
||||||
final NetworkStats vtSnapshot = telephonyManager.getVtDataUsage(false);
|
final NetworkStats vtSnapshot = telephonyManager.getVtDataUsage(STATS_PER_IFACE);
|
||||||
if (vtSnapshot != null) {
|
if (vtSnapshot != null) {
|
||||||
xtSnapshot.combineAllValues(vtSnapshot);
|
xtSnapshot.combineAllValues(vtSnapshot);
|
||||||
}
|
}
|
||||||
@@ -1410,9 +1417,9 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
|
|||||||
* Return snapshot of current tethering statistics. Will return empty
|
* Return snapshot of current tethering statistics. Will return empty
|
||||||
* {@link NetworkStats} if any problems are encountered.
|
* {@link NetworkStats} if any problems are encountered.
|
||||||
*/
|
*/
|
||||||
private NetworkStats getNetworkStatsTethering() throws RemoteException {
|
private NetworkStats getNetworkStatsTethering(int how) throws RemoteException {
|
||||||
try {
|
try {
|
||||||
return mNetworkManager.getNetworkStatsTethering();
|
return mNetworkManager.getNetworkStatsTethering(how);
|
||||||
} catch (IllegalStateException e) {
|
} catch (IllegalStateException e) {
|
||||||
Log.wtf(TAG, "problem reading network stats", e);
|
Log.wtf(TAG, "problem reading network stats", e);
|
||||||
return new NetworkStats(0L, 10);
|
return new NetworkStats(0L, 10);
|
||||||
|
|||||||
Reference in New Issue
Block a user