// 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, int); method public int describeContents(); method @NonNull public java.util.List 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 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 CREATOR; } public final class TetheringConstants { field public static final String EXTRA_ADD_TETHER_TYPE = "extraAddTetherType"; field public static final String EXTRA_PROVISION_CALLBACK = "extraProvisionCallback"; field public static final String EXTRA_REM_TETHER_TYPE = "extraRemTetherType"; field public static final String EXTRA_RUN_PROVISION = "extraRunProvision"; field public static final String EXTRA_SET_ALARM = "extraSetAlarm"; } public class TetheringManager { ctor public TetheringManager(@NonNull android.content.Context, @NonNull java.util.function.Supplier); method public int getLastTetherError(@NonNull String); method @NonNull public String[] getTetherableBluetoothRegexs(); method @NonNull public String[] getTetherableIfaces(); method @NonNull public String[] getTetherableUsbRegexs(); method @NonNull public String[] getTetherableWifiRegexs(); method @NonNull public String[] getTetheredIfaces(); method @NonNull public String[] getTetheringErroredIfaces(); method public boolean isTetheringSupported(); method public boolean isTetheringSupported(@NonNull String); 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 public void requestLatestTetheringEntitlementResult(int, @NonNull android.os.ResultReceiver, boolean); method @Deprecated public int setUsbTethering(boolean); 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 @Deprecated public int tether(@NonNull String); method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback); method @Deprecated public int untether(@NonNull String); 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_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); method public default void onError(@NonNull String, int); method public default void onOffloadStatusChanged(int); method public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps); method public default void onTetherableInterfacesChanged(@NonNull java.util.List); method public default void onTetheredInterfacesChanged(@NonNull java.util.List); method public default void onTetheringSupported(boolean); method public default void onUpstreamChanged(@Nullable android.net.Network); } public static class TetheringManager.TetheringInterfaceRegexps { method @NonNull public java.util.List getTetherableBluetoothRegexs(); method @NonNull public java.util.List getTetherableUsbRegexs(); method @NonNull public java.util.List getTetherableWifiRegexs(); } public static class TetheringManager.TetheringRequest { method @Nullable public android.net.LinkAddress getClientStaticIpv4Address(); 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 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); } }