|  | // Signature format: 2.0 | 
|  | package android.net { | 
|  |  | 
|  | 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 final class TetheringInterface implements android.os.Parcelable { | 
|  | ctor public TetheringInterface(int, @NonNull String); | 
|  | method public int describeContents(); | 
|  | method @NonNull public String getInterface(); | 
|  | method public int getType(); | 
|  | method public void writeToParcel(@NonNull android.os.Parcel, int); | 
|  | field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheringInterface> 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 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 @Deprecated public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED"; | 
|  | field public static final int CONNECTIVITY_SCOPE_GLOBAL = 1; // 0x1 | 
|  | field public static final int CONNECTIVITY_SCOPE_LOCAL = 2; // 0x2 | 
|  | 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_ETHERNET = 5; // 0x5 | 
|  | field public static final int TETHERING_INVALID = -1; // 0xffffffff | 
|  | field public static final int TETHERING_NCM = 4; // 0x4 | 
|  | 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_FORWARDING_ERROR = 9; // 0x9 | 
|  | field public static final int TETHER_ERROR_ENABLE_FORWARDING_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_INTERNAL_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_PROVISIONING_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_UNKNOWN_TYPE = 16; // 0x10 | 
|  | field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3 | 
|  | field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7 | 
|  | field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2 | 
|  | field public static final int TETHER_HARDWARE_OFFLOAD_STARTED = 1; // 0x1 | 
|  | field public static final int TETHER_HARDWARE_OFFLOAD_STOPPED = 0; // 0x0 | 
|  | } | 
|  |  | 
|  | public static interface TetheringManager.OnTetheringEntitlementResultListener { | 
|  | method public void onTetheringEntitlementResult(int); | 
|  | } | 
|  |  | 
|  | public static interface TetheringManager.StartTetheringCallback { | 
|  | method public default void onTetheringFailed(int); | 
|  | method public default void onTetheringStarted(); | 
|  | } | 
|  |  | 
|  | public static interface TetheringManager.TetheringEventCallback { | 
|  | method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>); | 
|  | method public default void onError(@NonNull String, int); | 
|  | method public default void onError(@NonNull android.net.TetheringInterface, int); | 
|  | method public default void onLocalOnlyInterfacesChanged(@NonNull java.util.List<java.lang.String>); | 
|  | method public default void onLocalOnlyInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>); | 
|  | method public default void onOffloadStatusChanged(int); | 
|  | method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>); | 
|  | method public default void onTetherableInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>); | 
|  | method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>); | 
|  | method public default void onTetheredInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>); | 
|  | method public default void onTetheringSupported(boolean); | 
|  | method public default void onUpstreamChanged(@Nullable android.net.Network); | 
|  | } | 
|  |  | 
|  | public static class TetheringManager.TetheringRequest { | 
|  | method @Nullable public android.net.LinkAddress getClientStaticIpv4Address(); | 
|  | method public int getConnectivityScope(); | 
|  | method @Nullable public android.net.LinkAddress getLocalIpv4Address(); | 
|  | method public boolean getShouldShowEntitlementUi(); | 
|  | method public int getTetheringType(); | 
|  | method public boolean isExemptFromEntitlementCheck(); | 
|  | } | 
|  |  | 
|  | 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 setConnectivityScope(int); | 
|  | 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 setShouldShowEntitlementUi(boolean); | 
|  | method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress); | 
|  | } | 
|  |  | 
|  | } | 
|  |  |