Merge "API council requested tweaks to TrafficStats." into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a6bc76ee8
@@ -27255,6 +27255,7 @@ package android.net {
|
||||
method public static long getMobileTxBytes();
|
||||
method public static long getMobileTxPackets();
|
||||
method public static int getThreadStatsTag();
|
||||
method public static int getThreadStatsUid();
|
||||
method public static long getTotalRxBytes();
|
||||
method public static long getTotalRxPackets();
|
||||
method public static long getTotalTxBytes();
|
||||
@@ -27274,7 +27275,7 @@ package android.net {
|
||||
method public static void incrementOperationCount(int);
|
||||
method public static void incrementOperationCount(int, int);
|
||||
method public static void setThreadStatsTag(int);
|
||||
method public static void setThreadStatsUidSelf();
|
||||
method public static void setThreadStatsUid(int);
|
||||
method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
|
||||
method public static void tagFileDescriptor(java.io.FileDescriptor) throws java.io.IOException;
|
||||
method public static void tagSocket(java.net.Socket) throws java.net.SocketException;
|
||||
|
||||
@@ -261,6 +261,10 @@ package android.net {
|
||||
method public static deprecated org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache);
|
||||
}
|
||||
|
||||
public class TrafficStats {
|
||||
method public static deprecated void setThreadStatsUidSelf();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.os {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package android.net;
|
||||
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.annotation.SystemApi;
|
||||
import android.annotation.TestApi;
|
||||
@@ -259,22 +258,35 @@ 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
|
||||
@@ -282,7 +294,11 @@ public class TrafficStats {
|
||||
* <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());
|
||||
}
|
||||
|
||||
@@ -67,6 +67,10 @@ public final class NetworkManagementSocketTagger extends SocketTagger {
|
||||
return old;
|
||||
}
|
||||
|
||||
public static int getThreadSocketStatsUid() {
|
||||
return threadSocketTags.get().statsUid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tag(FileDescriptor fd) throws SocketException {
|
||||
final SocketTags options = threadSocketTags.get();
|
||||
|
||||
Reference in New Issue
Block a user