Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2458be40 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Gerrit Code Review
Browse files

Merge changes I7065d081,Ic7c3a331,Ia432057b

* changes:
  Add API for tethering clients change
  Allows the caller to specify configuration by TetheringRequest
  Make TetheringManager to system API
parents 95bf4453 bfc910ce
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -658,7 +658,10 @@ filegroup {
    name: "framework-tethering-annotations",
    srcs: [
        "core/java/android/annotation/NonNull.java",
        "core/java/android/annotation/Nullable.java",
        "core/java/android/annotation/RequiresPermission.java",
        "core/java/android/annotation/SystemApi.java",
        "core/java/android/annotation/TestApi.java",
    ],
}
// Build ext.jar
+112 −19
Original line number Diff line number Diff line
@@ -4340,44 +4340,44 @@ package android.net {
    method @NonNull @RequiresPermission(android.Manifest.permission.PACKET_KEEPALIVE_OFFLOAD) public android.net.SocketKeepalive createNattKeepalive(@NonNull android.net.Network, @NonNull android.os.ParcelFileDescriptor, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull java.util.concurrent.Executor, @NonNull android.net.SocketKeepalive.Callback);
    method @NonNull @RequiresPermission(android.Manifest.permission.PACKET_KEEPALIVE_OFFLOAD) public android.net.SocketKeepalive createSocketKeepalive(@NonNull android.net.Network, @NonNull java.net.Socket, @NonNull java.util.concurrent.Executor, @NonNull android.net.SocketKeepalive.Callback);
    method @Deprecated @RequiresPermission("android.permission.NETWORK_SETTINGS") public String getCaptivePortalServerUrl();
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void getLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEntitlementResultListener);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported();
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void getLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEntitlementResultListener);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported();
    method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public int registerNetworkProvider(@NonNull android.net.NetworkProvider);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    method @Deprecated public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, int, int, @NonNull android.os.Handler);
    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void setAirplaneMode(boolean);
    method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, "android.permission.NETWORK_STACK"}) public boolean shouldAvoidBadWifi();
    method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int);
    method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void unregisterNetworkProvider(@NonNull android.net.NetworkProvider);
    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
    field public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC = "android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
    field public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT = "android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
    field public static final int TETHERING_USB = 1; // 0x1
    field public static final int TETHERING_WIFI = 0; // 0x0
    field public static final int TETHER_ERROR_ENTITLEMENT_UNKONWN = 13; // 0xd
    field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
    field @Deprecated public static final int TETHER_ERROR_ENTITLEMENT_UNKONWN = 13; // 0xd
    field @Deprecated public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
    field @Deprecated public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
    field public static final int TYPE_NONE = -1; // 0xffffffff
    field @Deprecated public static final int TYPE_WIFI_P2P = 13; // 0xd
  }
  public abstract static class ConnectivityManager.OnStartTetheringCallback {
    ctor public ConnectivityManager.OnStartTetheringCallback();
    method public void onTetheringFailed();
    method public void onTetheringStarted();
  @Deprecated public abstract static class ConnectivityManager.OnStartTetheringCallback {
    ctor @Deprecated public ConnectivityManager.OnStartTetheringCallback();
    method @Deprecated public void onTetheringFailed();
    method @Deprecated public void onTetheringStarted();
  }
  public static interface ConnectivityManager.OnTetheringEntitlementResultListener {
    method public void onTetheringEntitlementResult(int);
  @Deprecated public static interface ConnectivityManager.OnTetheringEntitlementResultListener {
    method @Deprecated public void onTetheringEntitlementResult(int);
  }
  public abstract static class ConnectivityManager.OnTetheringEventCallback {
    ctor public ConnectivityManager.OnTetheringEventCallback();
    method public void onUpstreamChanged(@Nullable android.net.Network);
  @Deprecated public abstract static class ConnectivityManager.OnTetheringEventCallback {
    ctor @Deprecated public ConnectivityManager.OnTetheringEventCallback();
    method @Deprecated public void onUpstreamChanged(@Nullable android.net.Network);
  }
  public class InvalidPacketException extends java.lang.Exception {
@@ -4716,6 +4716,99 @@ package android.net {
    method public boolean satisfiedBy(android.net.NetworkSpecifier);
  }
  public final class TetheredClient implements android.os.Parcelable {
    ctor public TetheredClient(@NonNull android.net.MacAddress, @NonNull java.util.Collection<android.net.TetheredClient.AddressInfo>, int);
    method public int describeContents();
    method @NonNull public java.util.List<android.net.TetheredClient.AddressInfo> getAddresses();
    method @NonNull public android.net.MacAddress getMacAddress();
    method public int getTetheringType();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient> CREATOR;
  }
  public static final class TetheredClient.AddressInfo implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.net.LinkAddress getAddress();
    method @Nullable public String getHostname();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient.AddressInfo> CREATOR;
  }
  public class TetheringManager {
    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
    field public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
    field public static final String EXTRA_ERRORED_TETHER = "erroredArray";
    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
    field public static final int TETHERING_INVALID = -1; // 0xffffffff
    field public static final int TETHERING_USB = 1; // 0x1
    field public static final int TETHERING_WIFI = 0; // 0x0
    field public static final int TETHERING_WIFI_P2P = 3; // 0x3
    field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
    field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
    field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
    field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
    field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
    field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
    field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
    field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
    field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
    field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
    field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
    field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
  }
  public static interface TetheringManager.OnTetheringEntitlementResultListener {
    method public void onTetheringEntitlementResult(int);
  }
  public abstract static class TetheringManager.StartTetheringCallback {
    ctor public TetheringManager.StartTetheringCallback();
    method public void onTetheringFailed(int);
    method public void onTetheringStarted();
  }
  public abstract static class TetheringManager.TetheringEventCallback {
    ctor public TetheringManager.TetheringEventCallback();
    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
    method public void onError(@NonNull String, int);
    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
    method public void onTetheringSupported(boolean);
    method public void onUpstreamChanged(@Nullable android.net.Network);
  }
  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
  }
  public static class TetheringManager.TetheringRequest {
  }
  public static class TetheringManager.TetheringRequest.Builder {
    ctor public TetheringManager.TetheringRequest.Builder(int);
    method @NonNull public android.net.TetheringManager.TetheringRequest build();
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
  }
  public class TrafficStats {
    method public static void setThreadStatsTagApp();
    method public static void setThreadStatsTagBackup();
+10 −0
Original line number Diff line number Diff line
// Baseline format: 1.0
// Tethering broadcast action / extras cannot change name for backwards compatibility
ActionValue: android.net.TetheringManager#ACTION_TETHER_STATE_CHANGED:
    Inconsistent action value; expected `android.net.action.TETHER_STATE_CHANGED`, was `android.net.conn.TETHER_STATE_CHANGED`
ActionValue: android.net.TetheringManager#EXTRA_ACTIVE_TETHER:
    Inconsistent extra value; expected `android.net.extra.ACTIVE_TETHER`, was `tetherArray`
ActionValue: android.net.TetheringManager#EXTRA_AVAILABLE_TETHER:
    Inconsistent extra value; expected `android.net.extra.AVAILABLE_TETHER`, was `availableArray`
ActionValue: android.net.TetheringManager#EXTRA_ERRORED_TETHER:
    Inconsistent extra value; expected `android.net.extra.ERRORED_TETHER`, was `erroredArray`

ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
    

+93 −0
Original line number Diff line number Diff line
@@ -1506,6 +1506,99 @@ package android.net {
    method public void teardownTestNetwork(@NonNull android.net.Network);
  }

  public final class TetheredClient implements android.os.Parcelable {
    ctor public TetheredClient(@NonNull android.net.MacAddress, @NonNull java.util.Collection<android.net.TetheredClient.AddressInfo>, int);
    method public int describeContents();
    method @NonNull public java.util.List<android.net.TetheredClient.AddressInfo> getAddresses();
    method @NonNull public android.net.MacAddress getMacAddress();
    method public int getTetheringType();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient> CREATOR;
  }

  public static final class TetheredClient.AddressInfo implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.net.LinkAddress getAddress();
    method @Nullable public String getHostname();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient.AddressInfo> CREATOR;
  }

  public class TetheringManager {
    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
    field public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
    field public static final String EXTRA_ERRORED_TETHER = "erroredArray";
    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
    field public static final int TETHERING_INVALID = -1; // 0xffffffff
    field public static final int TETHERING_USB = 1; // 0x1
    field public static final int TETHERING_WIFI = 0; // 0x0
    field public static final int TETHERING_WIFI_P2P = 3; // 0x3
    field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
    field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
    field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
    field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
    field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
    field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
    field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
    field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
    field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
    field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
    field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
    field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
  }

  public static interface TetheringManager.OnTetheringEntitlementResultListener {
    method public void onTetheringEntitlementResult(int);
  }

  public abstract static class TetheringManager.StartTetheringCallback {
    ctor public TetheringManager.StartTetheringCallback();
    method public void onTetheringFailed(int);
    method public void onTetheringStarted();
  }

  public abstract static class TetheringManager.TetheringEventCallback {
    ctor public TetheringManager.TetheringEventCallback();
    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
    method public void onError(@NonNull String, int);
    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
    method public void onTetheringSupported(boolean);
    method public void onUpstreamChanged(@Nullable android.net.Network);
  }

  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
  }

  public static class TetheringManager.TetheringRequest {
  }

  public static class TetheringManager.TetheringRequest.Builder {
    ctor public TetheringManager.TetheringRequest.Builder(int);
    method @NonNull public android.net.TetheringManager.TetheringRequest build();
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
  }

  public class TrafficStats {
    method public static long getLoopbackRxBytes();
    method public static long getLoopbackRxPackets();
+10 −0
Original line number Diff line number Diff line
@@ -5,6 +5,16 @@ AcronymName: android.app.NotificationChannel#setImportanceLockedByOEM(boolean):
    


// Tethering broadcast action / extras cannot change name for backwards compatibility
ActionValue: android.net.TetheringManager#ACTION_TETHER_STATE_CHANGED:
    Inconsistent action value; expected `android.net.action.TETHER_STATE_CHANGED`, was `android.net.conn.TETHER_STATE_CHANGED`
ActionValue: android.net.TetheringManager#EXTRA_ACTIVE_TETHER:
    Inconsistent extra value; expected `android.net.extra.ACTIVE_TETHER`, was `tetherArray`
ActionValue: android.net.TetheringManager#EXTRA_AVAILABLE_TETHER:
    Inconsistent extra value; expected `android.net.extra.AVAILABLE_TETHER`, was `availableArray`
ActionValue: android.net.TetheringManager#EXTRA_ERRORED_TETHER:
    Inconsistent extra value; expected `android.net.extra.ERRORED_TETHER`, was `erroredArray`

ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_ADDITIONAL_CALL_INFO:
    Inconsistent extra value; expected `android.telephony.ims.extra.ADDITIONAL_CALL_INFO`, was `AdditionalCallInfo`
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CALL_RAT_TYPE:
Loading