xref: /aosp_15_r20/prebuilts/sdk/33/system/api/framework-uwb.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1// Signature format: 2.0
2package android.uwb {
3
4  public final class AngleMeasurement implements android.os.Parcelable {
5    ctor public AngleMeasurement(@FloatRange(from=-3.141592653589793, to=3.141592653589793) double, @FloatRange(from=0.0, to=3.141592653589793) double, @FloatRange(from=0.0, to=1.0) double);
6    method public int describeContents();
7    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
8    method @FloatRange(from=0.0, to=3.141592653589793) public double getErrorRadians();
9    method @FloatRange(from=-3.141592653589793, to=3.141592653589793) public double getRadians();
10    method public void writeToParcel(@NonNull android.os.Parcel, int);
11    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.AngleMeasurement> CREATOR;
12  }
13
14  public final class AngleOfArrivalMeasurement implements android.os.Parcelable {
15    method public int describeContents();
16    method @Nullable public android.uwb.AngleMeasurement getAltitude();
17    method @NonNull public android.uwb.AngleMeasurement getAzimuth();
18    method public void writeToParcel(@NonNull android.os.Parcel, int);
19    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.AngleOfArrivalMeasurement> CREATOR;
20  }
21
22  public static final class AngleOfArrivalMeasurement.Builder {
23    ctor public AngleOfArrivalMeasurement.Builder(@NonNull android.uwb.AngleMeasurement);
24    method @NonNull public android.uwb.AngleOfArrivalMeasurement build();
25    method @NonNull public android.uwb.AngleOfArrivalMeasurement.Builder setAltitude(@NonNull android.uwb.AngleMeasurement);
26  }
27
28  public final class DistanceMeasurement implements android.os.Parcelable {
29    method public int describeContents();
30    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
31    method @FloatRange(from=0.0) public double getErrorMeters();
32    method public double getMeters();
33    method public void writeToParcel(@NonNull android.os.Parcel, int);
34    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.DistanceMeasurement> CREATOR;
35  }
36
37  public static final class DistanceMeasurement.Builder {
38    ctor public DistanceMeasurement.Builder();
39    method @NonNull public android.uwb.DistanceMeasurement build();
40    method @NonNull public android.uwb.DistanceMeasurement.Builder setConfidenceLevel(@FloatRange(from=0.0, to=1.0) double);
41    method @NonNull public android.uwb.DistanceMeasurement.Builder setErrorMeters(@FloatRange(from=0.0) double);
42    method @NonNull public android.uwb.DistanceMeasurement.Builder setMeters(double);
43  }
44
45  public final class RangingMeasurement implements android.os.Parcelable {
46    method public int describeContents();
47    method @Nullable public android.uwb.AngleOfArrivalMeasurement getAngleOfArrivalMeasurement();
48    method @Nullable public android.uwb.AngleOfArrivalMeasurement getDestinationAngleOfArrivalMeasurement();
49    method @Nullable public android.uwb.DistanceMeasurement getDistanceMeasurement();
50    method public long getElapsedRealtimeNanos();
51    method public int getLineOfSight();
52    method public int getMeasurementFocus();
53    method @NonNull public android.uwb.UwbAddress getRemoteDeviceAddress();
54    method @IntRange(from=android.uwb.RangingMeasurement.RSSI_UNKNOWN, to=android.uwb.RangingMeasurement.RSSI_MAX) public int getRssiDbm();
55    method public int getStatus();
56    method public void writeToParcel(@NonNull android.os.Parcel, int);
57    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingMeasurement> CREATOR;
58    field public static final int LOS = 0; // 0x0
59    field public static final int LOS_UNDETERMINED = 255; // 0xff
60    field public static final int MEASUREMENT_FOCUS_ANGLE_OF_ARRIVAL_AZIMUTH = 2; // 0x2
61    field public static final int MEASUREMENT_FOCUS_ANGLE_OF_ARRIVAL_ELEVATION = 3; // 0x3
62    field public static final int MEASUREMENT_FOCUS_NONE = 0; // 0x0
63    field public static final int MEASUREMENT_FOCUS_RANGE = 1; // 0x1
64    field public static final int NLOS = 1; // 0x1
65    field public static final int RANGING_STATUS_FAILURE_OUT_OF_RANGE = 1; // 0x1
66    field public static final int RANGING_STATUS_FAILURE_UNKNOWN_ERROR = -1; // 0xffffffff
67    field public static final int RANGING_STATUS_SUCCESS = 0; // 0x0
68    field public static final int RSSI_MAX = -1; // 0xffffffff
69    field public static final int RSSI_MIN = -127; // 0xffffff81
70    field public static final int RSSI_UNKNOWN = -128; // 0xffffff80
71  }
72
73  public static final class RangingMeasurement.Builder {
74    ctor public RangingMeasurement.Builder();
75    method @NonNull public android.uwb.RangingMeasurement build();
76    method @NonNull public android.uwb.RangingMeasurement.Builder setAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement);
77    method @NonNull public android.uwb.RangingMeasurement.Builder setDestinationAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement);
78    method @NonNull public android.uwb.RangingMeasurement.Builder setDistanceMeasurement(@NonNull android.uwb.DistanceMeasurement);
79    method @NonNull public android.uwb.RangingMeasurement.Builder setElapsedRealtimeNanos(long);
80    method @NonNull public android.uwb.RangingMeasurement.Builder setLineOfSight(int);
81    method @NonNull public android.uwb.RangingMeasurement.Builder setMeasurementFocus(int);
82    method @NonNull public android.uwb.RangingMeasurement.Builder setRemoteDeviceAddress(@NonNull android.uwb.UwbAddress);
83    method @NonNull public android.uwb.RangingMeasurement.Builder setRssiDbm(@IntRange(from=android.uwb.RangingMeasurement.RSSI_UNKNOWN, to=android.uwb.RangingMeasurement.RSSI_MAX) int);
84    method @NonNull public android.uwb.RangingMeasurement.Builder setStatus(int);
85  }
86
87  public final class RangingReport implements android.os.Parcelable {
88    method public int describeContents();
89    method @NonNull public java.util.List<android.uwb.RangingMeasurement> getMeasurements();
90    method public void writeToParcel(@NonNull android.os.Parcel, int);
91    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingReport> CREATOR;
92  }
93
94  public static final class RangingReport.Builder {
95    ctor public RangingReport.Builder();
96    method @NonNull public android.uwb.RangingReport.Builder addMeasurement(@NonNull android.uwb.RangingMeasurement);
97    method @NonNull public android.uwb.RangingReport.Builder addMeasurements(@NonNull java.util.List<android.uwb.RangingMeasurement>);
98    method @NonNull public android.uwb.RangingReport build();
99  }
100
101  public final class RangingSession implements java.lang.AutoCloseable {
102    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void addControlee(@NonNull android.os.PersistableBundle);
103    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close();
104    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void pause(@NonNull android.os.PersistableBundle);
105    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle);
106    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void removeControlee(@NonNull android.os.PersistableBundle);
107    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void resume(@NonNull android.os.PersistableBundle);
108    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void sendData(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle, @NonNull byte[]);
109    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle);
110    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop();
111  }
112
113  public static interface RangingSession.Callback {
114    method public void onClosed(int, @NonNull android.os.PersistableBundle);
115    method public default void onControleeAddFailed(int, @NonNull android.os.PersistableBundle);
116    method public default void onControleeAdded(@NonNull android.os.PersistableBundle);
117    method public default void onControleeRemoveFailed(int, @NonNull android.os.PersistableBundle);
118    method public default void onControleeRemoved(@NonNull android.os.PersistableBundle);
119    method public default void onDataReceiveFailed(@NonNull android.uwb.UwbAddress, int, @NonNull android.os.PersistableBundle);
120    method public default void onDataReceived(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle, @NonNull byte[]);
121    method public default void onDataSendFailed(@NonNull android.uwb.UwbAddress, int, @NonNull android.os.PersistableBundle);
122    method public default void onDataSent(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle);
123    method public void onOpenFailed(int, @NonNull android.os.PersistableBundle);
124    method public void onOpened(@NonNull android.uwb.RangingSession);
125    method public default void onPauseFailed(int, @NonNull android.os.PersistableBundle);
126    method public default void onPaused(@NonNull android.os.PersistableBundle);
127    method public void onReconfigureFailed(int, @NonNull android.os.PersistableBundle);
128    method public void onReconfigured(@NonNull android.os.PersistableBundle);
129    method public void onReportReceived(@NonNull android.uwb.RangingReport);
130    method public default void onResumeFailed(int, @NonNull android.os.PersistableBundle);
131    method public default void onResumed(@NonNull android.os.PersistableBundle);
132    method public default void onServiceConnected(@NonNull android.os.PersistableBundle);
133    method public default void onServiceDiscovered(@NonNull android.os.PersistableBundle);
134    method public void onStartFailed(int, @NonNull android.os.PersistableBundle);
135    method public void onStarted(@NonNull android.os.PersistableBundle);
136    method public void onStopFailed(int, @NonNull android.os.PersistableBundle);
137    method public void onStopped(int, @NonNull android.os.PersistableBundle);
138    field public static final int CONTROLEE_FAILURE_REASON_MAX_CONTROLEE_REACHED = 0; // 0x0
139    field public static final int DATA_FAILURE_REASON_DATA_SIZE_TOO_LARGE = 10; // 0xa
140    field public static final int REASON_BAD_PARAMETERS = 3; // 0x3
141    field public static final int REASON_GENERIC_ERROR = 4; // 0x4
142    field public static final int REASON_LOCAL_REQUEST = 1; // 0x1
143    field public static final int REASON_MAX_RR_RETRY_REACHED = 9; // 0x9
144    field public static final int REASON_MAX_SESSIONS_REACHED = 5; // 0x5
145    field public static final int REASON_PROTOCOL_SPECIFIC_ERROR = 7; // 0x7
146    field public static final int REASON_REMOTE_REQUEST = 2; // 0x2
147    field public static final int REASON_SERVICE_CONNECTION_FAILURE = 11; // 0xb
148    field public static final int REASON_SERVICE_DISCOVERY_FAILURE = 10; // 0xa
149    field public static final int REASON_SE_INTERACTION_FAILURE = 13; // 0xd
150    field public static final int REASON_SE_NOT_SUPPORTED = 12; // 0xc
151    field public static final int REASON_SYSTEM_POLICY = 6; // 0x6
152    field public static final int REASON_UNKNOWN = 0; // 0x0
153  }
154
155  public final class UwbAddress implements android.os.Parcelable {
156    method public int describeContents();
157    method @NonNull public static android.uwb.UwbAddress fromBytes(@NonNull byte[]);
158    method public int size();
159    method @NonNull public byte[] toBytes();
160    method public void writeToParcel(@NonNull android.os.Parcel, int);
161    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbAddress> CREATOR;
162    field public static final int EXTENDED_ADDRESS_BYTE_LENGTH = 8; // 0x8
163    field public static final int SHORT_ADDRESS_BYTE_LENGTH = 2; // 0x2
164  }
165
166  public final class UwbManager {
167    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle addServiceProfile(@NonNull android.os.PersistableBundle);
168    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
169    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos(@NonNull String);
170    method public int getAdapterState();
171    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAdfCertificateInfo(@NonNull android.os.PersistableBundle);
172    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAdfProvisioningAuthorities(@NonNull android.os.PersistableBundle);
173    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAllServiceProfiles();
174    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.List<android.os.PersistableBundle> getChipInfos();
175    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public String getDefaultChipId();
176    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
177    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo(@NonNull String);
178    method public boolean isUwbEnabled();
179    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.UWB_PRIVILEGED, android.Manifest.permission.UWB_RANGING}) public android.os.CancellationSignal openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
180    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.UWB_PRIVILEGED, android.Manifest.permission.UWB_RANGING}) public android.os.CancellationSignal openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback, @NonNull String);
181    method public void provisionProfileAdfByScript(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdfProvisionStateCallback);
182    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
183    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerUwbVendorUciCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.UwbVendorUciCallback);
184    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int removeProfileAdf(@NonNull android.os.PersistableBundle);
185    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int removeServiceProfile(@NonNull android.os.PersistableBundle);
186    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int sendVendorUciMessage(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
187    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void setUwbEnabled(boolean);
188    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
189    method public void unregisterUwbVendorUciCallback(@NonNull android.uwb.UwbManager.UwbVendorUciCallback);
190    field public static final int REMOVE_PROFILE_ADF_ERROR_INTERNAL = 2; // 0x2
191    field public static final int REMOVE_PROFILE_ADF_ERROR_UNKNOWN_SERVICE = 1; // 0x1
192    field public static final int REMOVE_PROFILE_ADF_SUCCESS = 0; // 0x0
193    field public static final int REMOVE_SERVICE_PROFILE_ERROR_INTERNAL = 2; // 0x2
194    field public static final int REMOVE_SERVICE_PROFILE_ERROR_UNKNOWN_SERVICE = 1; // 0x1
195    field public static final int REMOVE_SERVICE_PROFILE_SUCCESS = 0; // 0x0
196    field public static final int SEND_VENDOR_UCI_ERROR_HW = 1; // 0x1
197    field public static final int SEND_VENDOR_UCI_ERROR_INVALID_ARGS = 3; // 0x3
198    field public static final int SEND_VENDOR_UCI_ERROR_INVALID_GID = 4; // 0x4
199    field public static final int SEND_VENDOR_UCI_ERROR_OFF = 2; // 0x2
200    field public static final int SEND_VENDOR_UCI_SUCCESS = 0; // 0x0
201  }
202
203  public static interface UwbManager.AdapterStateCallback {
204    method public void onStateChanged(int, int);
205    field public static final int STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED = 1; // 0x1
206    field public static final int STATE_CHANGED_REASON_ERROR_UNKNOWN = 4; // 0x4
207    field public static final int STATE_CHANGED_REASON_SESSION_STARTED = 0; // 0x0
208    field public static final int STATE_CHANGED_REASON_SYSTEM_BOOT = 3; // 0x3
209    field public static final int STATE_CHANGED_REASON_SYSTEM_POLICY = 2; // 0x2
210    field public static final int STATE_DISABLED = 0; // 0x0
211    field public static final int STATE_ENABLED_ACTIVE = 2; // 0x2
212    field public static final int STATE_ENABLED_INACTIVE = 1; // 0x1
213  }
214
215  public abstract static class UwbManager.AdfProvisionStateCallback {
216    ctor public UwbManager.AdfProvisionStateCallback();
217    method public abstract void onProfileAdfsProvisionFailed(int, @NonNull android.os.PersistableBundle);
218    method public abstract void onProfileAdfsProvisioned(@NonNull android.os.PersistableBundle);
219    field public static final int REASON_INVALID_OID = 1; // 0x1
220    field public static final int REASON_SE_FAILURE = 2; // 0x2
221    field public static final int REASON_UNKNOWN = 3; // 0x3
222  }
223
224  public static interface UwbManager.UwbVendorUciCallback {
225    method public void onVendorUciNotification(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
226    method public void onVendorUciResponse(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
227  }
228
229}
230
231