1// Signature format: 2.0
2package android.net {
3
4  public final class TetheredClient implements android.os.Parcelable {
5    ctor public TetheredClient(@NonNull android.net.MacAddress, @NonNull java.util.Collection<android.net.TetheredClient.AddressInfo>, int);
6    method public int describeContents();
7    method @NonNull public java.util.List<android.net.TetheredClient.AddressInfo> getAddresses();
8    method @NonNull public android.net.MacAddress getMacAddress();
9    method public int getTetheringType();
10    method public void writeToParcel(@NonNull android.os.Parcel, int);
11    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient> CREATOR;
12  }
13
14  public static final class TetheredClient.AddressInfo implements android.os.Parcelable {
15    method public int describeContents();
16    method @NonNull public android.net.LinkAddress getAddress();
17    method @Nullable public String getHostname();
18    method public void writeToParcel(@NonNull android.os.Parcel, int);
19    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient.AddressInfo> CREATOR;
20  }
21
22  public final class TetheringConstants {
23    field public static final String EXTRA_ADD_TETHER_TYPE = "extraAddTetherType";
24    field public static final String EXTRA_PROVISION_CALLBACK = "extraProvisionCallback";
25    field public static final String EXTRA_REM_TETHER_TYPE = "extraRemTetherType";
26    field public static final String EXTRA_RUN_PROVISION = "extraRunProvision";
27    field public static final String EXTRA_SET_ALARM = "extraSetAlarm";
28  }
29
30  public class TetheringManager {
31    ctor public TetheringManager(@NonNull android.content.Context, @NonNull java.util.function.Supplier<android.os.IBinder>);
32    method public int getLastTetherError(@NonNull String);
33    method @NonNull public String[] getTetherableBluetoothRegexs();
34    method @NonNull public String[] getTetherableIfaces();
35    method @NonNull public String[] getTetherableUsbRegexs();
36    method @NonNull public String[] getTetherableWifiRegexs();
37    method @NonNull public String[] getTetheredIfaces();
38    method @NonNull public String[] getTetheringErroredIfaces();
39    method public boolean isTetheringSupported();
40    method public boolean isTetheringSupported(@NonNull String);
41    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
42    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);
43    method public void requestLatestTetheringEntitlementResult(int, @NonNull android.os.ResultReceiver, boolean);
44    method @Deprecated public int setUsbTethering(boolean);
45    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);
46    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);
47    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
48    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
49    method @Deprecated public int tether(@NonNull String);
50    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
51    method @Deprecated public int untether(@NonNull String);
52    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
53    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
54    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
55    field public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
56    field public static final String EXTRA_ERRORED_TETHER = "erroredArray";
57    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
58    field public static final int TETHERING_ETHERNET = 5; // 0x5
59    field public static final int TETHERING_INVALID = -1; // 0xffffffff
60    field public static final int TETHERING_NCM = 4; // 0x4
61    field public static final int TETHERING_USB = 1; // 0x1
62    field public static final int TETHERING_WIFI = 0; // 0x0
63    field public static final int TETHERING_WIFI_P2P = 3; // 0x3
64    field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
65    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
66    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
67    field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
68    field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
69    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
70    field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
71    field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
72    field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
73    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
74    field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
75    field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
76    field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
77    field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
78    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
79    field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
80    field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
81    field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
82    field public static final int TETHER_HARDWARE_OFFLOAD_STARTED = 1; // 0x1
83    field public static final int TETHER_HARDWARE_OFFLOAD_STOPPED = 0; // 0x0
84  }
85
86  public static interface TetheringManager.OnTetheringEntitlementResultListener {
87    method public void onTetheringEntitlementResult(int);
88  }
89
90  public static interface TetheringManager.StartTetheringCallback {
91    method public default void onTetheringFailed(int);
92    method public default void onTetheringStarted();
93  }
94
95  public static interface TetheringManager.TetheringEventCallback {
96    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
97    method public default void onError(@NonNull String, int);
98    method public default void onOffloadStatusChanged(int);
99    method public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
100    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
101    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
102    method public default void onTetheringSupported(boolean);
103    method public default void onUpstreamChanged(@Nullable android.net.Network);
104  }
105
106  public static class TetheringManager.TetheringInterfaceRegexps {
107    method @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
108    method @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
109    method @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
110  }
111
112  public static class TetheringManager.TetheringRequest {
113    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
114    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
115    method public boolean getShouldShowEntitlementUi();
116    method public int getTetheringType();
117    method public boolean isExemptFromEntitlementCheck();
118  }
119
120  public static class TetheringManager.TetheringRequest.Builder {
121    ctor public TetheringManager.TetheringRequest.Builder(int);
122    method @NonNull public android.net.TetheringManager.TetheringRequest build();
123    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
124    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
125    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
126  }
127
128}
129
130