xref: /aosp_15_r20/prebuilts/sdk/30/system/api/framework-tethering.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker// Signature format: 2.0
2*344a7f5eSAndroid Build Coastguard Workerpackage android.net {
3*344a7f5eSAndroid Build Coastguard Worker
4*344a7f5eSAndroid Build Coastguard Worker  public final class TetheredClient implements android.os.Parcelable {
5*344a7f5eSAndroid Build Coastguard Worker    ctor public TetheredClient(@NonNull android.net.MacAddress, @NonNull java.util.Collection<android.net.TetheredClient.AddressInfo>, int);
6*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
7*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public java.util.List<android.net.TetheredClient.AddressInfo> getAddresses();
8*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.net.MacAddress getMacAddress();
9*344a7f5eSAndroid Build Coastguard Worker    method public int getTetheringType();
10*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
11*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient> CREATOR;
12*344a7f5eSAndroid Build Coastguard Worker  }
13*344a7f5eSAndroid Build Coastguard Worker
14*344a7f5eSAndroid Build Coastguard Worker  public static final class TetheredClient.AddressInfo implements android.os.Parcelable {
15*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
16*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.net.LinkAddress getAddress();
17*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public String getHostname();
18*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
19*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.net.TetheredClient.AddressInfo> CREATOR;
20*344a7f5eSAndroid Build Coastguard Worker  }
21*344a7f5eSAndroid Build Coastguard Worker
22*344a7f5eSAndroid Build Coastguard Worker  public class TetheringManager {
23*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
24*344a7f5eSAndroid Build Coastguard Worker    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);
25*344a7f5eSAndroid Build Coastguard Worker    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);
26*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
27*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
28*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
29*344a7f5eSAndroid Build Coastguard Worker    field public static final String ACTION_TETHER_STATE_CHANGED = "android.net.conn.TETHER_STATE_CHANGED";
30*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_ACTIVE_LOCAL_ONLY = "android.net.extra.ACTIVE_LOCAL_ONLY";
31*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
32*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
33*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_ERRORED_TETHER = "erroredArray";
34*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_BLUETOOTH = 2; // 0x2
35*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_ETHERNET = 5; // 0x5
36*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_INVALID = -1; // 0xffffffff
37*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_NCM = 4; // 0x4
38*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_USB = 1; // 0x1
39*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_WIFI = 0; // 0x0
40*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_WIFI_P2P = 3; // 0x3
41*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
42*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
43*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
44*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
45*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
46*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
47*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
48*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
49*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
50*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
51*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
52*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
53*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
54*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
55*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
56*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
57*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
58*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
59*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_HARDWARE_OFFLOAD_STARTED = 1; // 0x1
60*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHER_HARDWARE_OFFLOAD_STOPPED = 0; // 0x0
61*344a7f5eSAndroid Build Coastguard Worker  }
62*344a7f5eSAndroid Build Coastguard Worker
63*344a7f5eSAndroid Build Coastguard Worker  public static interface TetheringManager.OnTetheringEntitlementResultListener {
64*344a7f5eSAndroid Build Coastguard Worker    method public void onTetheringEntitlementResult(int);
65*344a7f5eSAndroid Build Coastguard Worker  }
66*344a7f5eSAndroid Build Coastguard Worker
67*344a7f5eSAndroid Build Coastguard Worker  public static interface TetheringManager.StartTetheringCallback {
68*344a7f5eSAndroid Build Coastguard Worker    method public default void onTetheringFailed(int);
69*344a7f5eSAndroid Build Coastguard Worker    method public default void onTetheringStarted();
70*344a7f5eSAndroid Build Coastguard Worker  }
71*344a7f5eSAndroid Build Coastguard Worker
72*344a7f5eSAndroid Build Coastguard Worker  public static interface TetheringManager.TetheringEventCallback {
73*344a7f5eSAndroid Build Coastguard Worker    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
74*344a7f5eSAndroid Build Coastguard Worker    method public default void onError(@NonNull String, int);
75*344a7f5eSAndroid Build Coastguard Worker    method public default void onOffloadStatusChanged(int);
76*344a7f5eSAndroid Build Coastguard Worker    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
77*344a7f5eSAndroid Build Coastguard Worker    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
78*344a7f5eSAndroid Build Coastguard Worker    method public default void onTetheringSupported(boolean);
79*344a7f5eSAndroid Build Coastguard Worker    method public default void onUpstreamChanged(@Nullable android.net.Network);
80*344a7f5eSAndroid Build Coastguard Worker  }
81*344a7f5eSAndroid Build Coastguard Worker
82*344a7f5eSAndroid Build Coastguard Worker  public static class TetheringManager.TetheringRequest {
83*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
84*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
85*344a7f5eSAndroid Build Coastguard Worker    method public boolean getShouldShowEntitlementUi();
86*344a7f5eSAndroid Build Coastguard Worker    method public int getTetheringType();
87*344a7f5eSAndroid Build Coastguard Worker    method public boolean isExemptFromEntitlementCheck();
88*344a7f5eSAndroid Build Coastguard Worker  }
89*344a7f5eSAndroid Build Coastguard Worker
90*344a7f5eSAndroid Build Coastguard Worker  public static class TetheringManager.TetheringRequest.Builder {
91*344a7f5eSAndroid Build Coastguard Worker    ctor public TetheringManager.TetheringRequest.Builder(int);
92*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.net.TetheringManager.TetheringRequest build();
93*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
94*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
95*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
96*344a7f5eSAndroid Build Coastguard Worker  }
97*344a7f5eSAndroid Build Coastguard Worker
98*344a7f5eSAndroid Build Coastguard Worker}
99*344a7f5eSAndroid Build Coastguard Worker
100