Loading packages/ConnectivityT/framework-t/src/android/app/usage/NetworkStats.java +9 −0 Original line number Diff line number Diff line Loading @@ -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. */ Loading packages/ConnectivityT/framework-t/src/android/app/usage/NetworkStatsManager.java +34 −1 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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. Loading packages/ConnectivityT/framework-t/src/android/net/INetworkStatsSession.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -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); Loading packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +12 −2 Original line number Diff line number Diff line Loading @@ -789,8 +789,18 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } return stats; } catch (NullPointerException e) { // TODO: Track down and fix the cause of this crash and remove this catch block. Log.wtf(TAG, "NullPointerException in getSummaryForAllUid", e); throw e; } } @Override public NetworkStats getTaggedSummaryForAllUid( NetworkTemplate template, long start, long end) { try { final NetworkStats tagStats = getUidTagComplete() .getSummary(template, start, end, mAccessLevel, mCallingUid); return tagStats; } catch (NullPointerException e) { throw e; } } Loading Loading
packages/ConnectivityT/framework-t/src/android/app/usage/NetworkStats.java +9 −0 Original line number Diff line number Diff line Loading @@ -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. */ Loading
packages/ConnectivityT/framework-t/src/android/app/usage/NetworkStatsManager.java +34 −1 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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. Loading
packages/ConnectivityT/framework-t/src/android/net/INetworkStatsSession.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
packages/ConnectivityT/service/src/com/android/server/net/NetworkStatsService.java +12 −2 Original line number Diff line number Diff line Loading @@ -789,8 +789,18 @@ public class NetworkStatsService extends INetworkStatsService.Stub { } return stats; } catch (NullPointerException e) { // TODO: Track down and fix the cause of this crash and remove this catch block. Log.wtf(TAG, "NullPointerException in getSummaryForAllUid", e); throw e; } } @Override public NetworkStats getTaggedSummaryForAllUid( NetworkTemplate template, long start, long end) { try { final NetworkStats tagStats = getUidTagComplete() .getSummary(template, start, end, mAccessLevel, mCallingUid); return tagStats; } catch (NullPointerException e) { throw e; } } Loading