diff options
Diffstat (limited to 'core/java/android/net/TrafficStats.java')
| -rw-r--r-- | core/java/android/net/TrafficStats.java | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/core/java/android/net/TrafficStats.java b/core/java/android/net/TrafficStats.java index 7922276edb75..40d53b741d6b 100644 --- a/core/java/android/net/TrafficStats.java +++ b/core/java/android/net/TrafficStats.java @@ -16,7 +16,6 @@ package android.net; -import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.TestApi; @@ -259,30 +258,47 @@ public class TrafficStats { /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread. Designed for use when performing an - * operation on behalf of another application. + * operation on behalf of another application, or when another application + * is performing operations on your behalf. + * <p> + * Any app can <em>accept</em> blame for traffic performed on a socket + * originally created by another app by calling this method with the + * {@link android.system.Os#getuid()} value. However, only apps holding the + * {@code android.Manifest.permission#UPDATE_DEVICE_STATS} permission may + * <em>assign</em> blame to another UIDs. * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. - * <p> - * To take effect, caller must hold - * {@link android.Manifest.permission#UPDATE_DEVICE_STATS} permission. - * - * @hide */ @SystemApi - @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) + @SuppressLint("Doclava125") public static void setThreadStatsUid(int uid) { NetworkManagementSocketTagger.setThreadSocketStatsUid(uid); } /** + * Get the active UID used when accounting {@link Socket} traffic originating + * from the current thread. Only one active tag per thread is supported. + * {@link #tagSocket(Socket)}. + * + * @see #setThreadStatsUid(int) + */ + public static int getThreadStatsUid() { + return NetworkManagementSocketTagger.getThreadSocketStatsUid(); + } + + /** * Set specific UID to use when accounting {@link Socket} traffic * originating from the current thread as the calling UID. Designed for use * when another application is performing operations on your behalf. * <p> * Changes only take effect during subsequent calls to * {@link #tagSocket(Socket)}. + * + * @removed + * @deprecated use {@link #setThreadStatsUid(int)} instead. */ + @Deprecated public static void setThreadStatsUidSelf() { setThreadStatsUid(android.os.Process.myUid()); } |
