blob: 3e637e7fd5d69cd242a5c67cd33820e5910589c6 [file] [log] [blame]
Anton Hansson65d1e302020-01-17 19:03:34 +00001// 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
markchien35ad54b2021-05-17 20:43:41 +080022 public final class TetheringInterface implements android.os.Parcelable {
23 ctor public TetheringInterface(int, @NonNull String);
Quang Anh Luonga66b78a2024-02-07 13:46:22 +090024 ctor @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public TetheringInterface(int, @NonNull String, @Nullable android.net.wifi.SoftApConfiguration);
markchien35ad54b2021-05-17 20:43:41 +080025 method public int describeContents();
26 method @NonNull public String getInterface();
Quang Anh Luonga66b78a2024-02-07 13:46:22 +090027 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") @Nullable @RequiresPermission(value=android.Manifest.permission.NETWORK_SETTINGS, conditional=true) public android.net.wifi.SoftApConfiguration getSoftApConfiguration();
markchien35ad54b2021-05-17 20:43:41 +080028 method public int getType();
29 method public void writeToParcel(@NonNull android.os.Parcel, int);
30 field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheringInterface> CREATOR;
31 }
32
Anton Hansson65d1e302020-01-17 19:03:34 +000033 public class TetheringManager {
34 method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
35 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);
36 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);
Anton Hansson65d1e302020-01-17 19:03:34 +000037 method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
38 method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
Quang Anh Luong5475f2d2024-12-04 12:28:29 +090039 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StopTetheringCallback);
Anton Hansson65d1e302020-01-17 19:03:34 +000040 method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
markchien35ad54b2021-05-17 20:43:41 +080041 field @Deprecated public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
Lorenzo Colitti8a36c292021-04-13 17:17:44 +090042 field public static final int CONNECTIVITY_SCOPE_GLOBAL = 1; // 0x1
43 field public static final int CONNECTIVITY_SCOPE_LOCAL = 2; // 0x2
Anton Hansson65d1e302020-01-17 19:03:34 +000044 field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
45 field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
46 field public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
47 field public static final String EXTRA_ERRORED_TETHER = "erroredArray";
48 field public static final int TETHERING_BLUETOOTH = 2; // 0x2
49 field public static final int TETHERING_ETHERNET = 5; // 0x5
50 field public static final int TETHERING_INVALID = -1; // 0xffffffff
51 field public static final int TETHERING_NCM = 4; // 0x4
52 field public static final int TETHERING_USB = 1; // 0x1
Seungjae Yoo07b8fe12024-06-19 16:18:51 +090053 field @FlaggedApi("com.android.net.flags.tethering_request_virtual") public static final int TETHERING_VIRTUAL = 7; // 0x7
Anton Hansson65d1e302020-01-17 19:03:34 +000054 field public static final int TETHERING_WIFI = 0; // 0x0
55 field public static final int TETHERING_WIFI_P2P = 3; // 0x3
56 field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
Anton Hansson4168cea2020-03-20 13:24:30 +000057 field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
Quang Anh Luong5475f2d2024-12-04 12:28:29 +090058 field @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public static final int TETHER_ERROR_DUPLICATE_REQUEST = 18; // 0x12
Anton Hansson4168cea2020-03-20 13:24:30 +000059 field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
Anton Hansson65d1e302020-01-17 19:03:34 +000060 field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
61 field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
Anton Hansson4168cea2020-03-20 13:24:30 +000062 field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
Anton Hansson65d1e302020-01-17 19:03:34 +000063 field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
64 field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
65 field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
Anton Hansson4168cea2020-03-20 13:24:30 +000066 field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
Anton Hansson65d1e302020-01-17 19:03:34 +000067 field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
68 field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
69 field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
70 field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
Quang Anh Luong5475f2d2024-12-04 12:28:29 +090071 field @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public static final int TETHER_ERROR_UNKNOWN_REQUEST = 17; // 0x11
Anton Hansson4168cea2020-03-20 13:24:30 +000072 field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
Anton Hansson65d1e302020-01-17 19:03:34 +000073 field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
74 field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
75 field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
76 field public static final int TETHER_HARDWARE_OFFLOAD_STARTED = 1; // 0x1
77 field public static final int TETHER_HARDWARE_OFFLOAD_STOPPED = 0; // 0x0
78 }
79
80 public static interface TetheringManager.OnTetheringEntitlementResultListener {
81 method public void onTetheringEntitlementResult(int);
82 }
83
Anton Hansson4168cea2020-03-20 13:24:30 +000084 public static interface TetheringManager.StartTetheringCallback {
85 method public default void onTetheringFailed(int);
86 method public default void onTetheringStarted();
Anton Hansson65d1e302020-01-17 19:03:34 +000087 }
88
Quang Anh Luong5475f2d2024-12-04 12:28:29 +090089 @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public static interface TetheringManager.StopTetheringCallback {
90 method public default void onStopTetheringFailed(int);
91 method public default void onStopTetheringSucceeded();
92 }
93
Anton Hansson4168cea2020-03-20 13:24:30 +000094 public static interface TetheringManager.TetheringEventCallback {
95 method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
96 method public default void onError(@NonNull String, int);
markchien35ad54b2021-05-17 20:43:41 +080097 method public default void onError(@NonNull android.net.TetheringInterface, int);
Lorenzo Colitti8a36c292021-04-13 17:17:44 +090098 method public default void onLocalOnlyInterfacesChanged(@NonNull java.util.List<java.lang.String>);
markchien35ad54b2021-05-17 20:43:41 +080099 method public default void onLocalOnlyInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>);
Anton Hansson4168cea2020-03-20 13:24:30 +0000100 method public default void onOffloadStatusChanged(int);
101 method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
markchien35ad54b2021-05-17 20:43:41 +0800102 method public default void onTetherableInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>);
Anton Hansson4168cea2020-03-20 13:24:30 +0000103 method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
markchien35ad54b2021-05-17 20:43:41 +0800104 method public default void onTetheredInterfacesChanged(@NonNull java.util.Set<android.net.TetheringInterface>);
Anton Hansson4168cea2020-03-20 13:24:30 +0000105 method public default void onTetheringSupported(boolean);
106 method public default void onUpstreamChanged(@Nullable android.net.Network);
Anton Hansson65d1e302020-01-17 19:03:34 +0000107 }
108
Quang Anh Luong1252f7f2024-02-07 13:41:40 +0900109 public static final class TetheringManager.TetheringRequest implements android.os.Parcelable {
Lorenzo Colitti172fe792024-11-13 17:16:50 +0000110 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public int describeContents();
Anton Hansson65d1e302020-01-17 19:03:34 +0000111 method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
Lorenzo Colitti8a36c292021-04-13 17:17:44 +0900112 method public int getConnectivityScope();
Anton Hansson65d1e302020-01-17 19:03:34 +0000113 method @Nullable public android.net.LinkAddress getLocalIpv4Address();
Anton Hansson4168cea2020-03-20 13:24:30 +0000114 method public boolean getShouldShowEntitlementUi();
Lorenzo Colitti172fe792024-11-13 17:16:50 +0000115 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") @Nullable public android.net.wifi.SoftApConfiguration getSoftApConfiguration();
Anton Hansson4168cea2020-03-20 13:24:30 +0000116 method public int getTetheringType();
117 method public boolean isExemptFromEntitlementCheck();
Lorenzo Colitti172fe792024-11-13 17:16:50 +0000118 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") public void writeToParcel(@NonNull android.os.Parcel, int);
119 field @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") @NonNull public static final android.os.Parcelable.Creator<android.net.TetheringManager.TetheringRequest> CREATOR;
junyulaia8b37772020-03-23 10:47:42 +0800120 }
121
122 public static class TetheringManager.TetheringRequest.Builder {
123 ctor public TetheringManager.TetheringRequest.Builder(int);
124 method @NonNull public android.net.TetheringManager.TetheringRequest build();
Lorenzo Colitti8a36c292021-04-13 17:17:44 +0900125 method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setConnectivityScope(int);
Anton Hansson65d1e302020-01-17 19:03:34 +0000126 method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
Anton Hansson4168cea2020-03-20 13:24:30 +0000127 method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
Lorenzo Colitti172fe792024-11-13 17:16:50 +0000128 method @FlaggedApi("com.android.net.flags.tethering_with_soft_ap_config") @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSoftApConfiguration(@Nullable android.net.wifi.SoftApConfiguration);
Anton Hansson65d1e302020-01-17 19:03:34 +0000129 method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
130 }
131
132}
133