xref: /aosp_15_r20/prebuilts/sdk/31/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.DistanceMeasurement getDistanceMeasurement();
49    method public long getElapsedRealtimeNanos();
50    method @NonNull public android.uwb.UwbAddress getRemoteDeviceAddress();
51    method public int getStatus();
52    method public void writeToParcel(@NonNull android.os.Parcel, int);
53    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingMeasurement> CREATOR;
54    field public static final int RANGING_STATUS_FAILURE_OUT_OF_RANGE = 1; // 0x1
55    field public static final int RANGING_STATUS_FAILURE_UNKNOWN_ERROR = -1; // 0xffffffff
56    field public static final int RANGING_STATUS_SUCCESS = 0; // 0x0
57  }
58
59  public static final class RangingMeasurement.Builder {
60    ctor public RangingMeasurement.Builder();
61    method @NonNull public android.uwb.RangingMeasurement build();
62    method @NonNull public android.uwb.RangingMeasurement.Builder setAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement);
63    method @NonNull public android.uwb.RangingMeasurement.Builder setDistanceMeasurement(@NonNull android.uwb.DistanceMeasurement);
64    method @NonNull public android.uwb.RangingMeasurement.Builder setElapsedRealtimeNanos(long);
65    method @NonNull public android.uwb.RangingMeasurement.Builder setRemoteDeviceAddress(@NonNull android.uwb.UwbAddress);
66    method @NonNull public android.uwb.RangingMeasurement.Builder setStatus(int);
67  }
68
69  public final class RangingReport implements android.os.Parcelable {
70    method public int describeContents();
71    method @NonNull public java.util.List<android.uwb.RangingMeasurement> getMeasurements();
72    method public void writeToParcel(@NonNull android.os.Parcel, int);
73    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingReport> CREATOR;
74  }
75
76  public static final class RangingReport.Builder {
77    ctor public RangingReport.Builder();
78    method @NonNull public android.uwb.RangingReport.Builder addMeasurement(@NonNull android.uwb.RangingMeasurement);
79    method @NonNull public android.uwb.RangingReport.Builder addMeasurements(@NonNull java.util.List<android.uwb.RangingMeasurement>);
80    method @NonNull public android.uwb.RangingReport build();
81  }
82
83  public final class RangingSession implements java.lang.AutoCloseable {
84    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close();
85    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle);
86    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle);
87    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop();
88  }
89
90  public static interface RangingSession.Callback {
91    method public void onClosed(int, @NonNull android.os.PersistableBundle);
92    method public void onOpenFailed(int, @NonNull android.os.PersistableBundle);
93    method public void onOpened(@NonNull android.uwb.RangingSession);
94    method public void onReconfigureFailed(int, @NonNull android.os.PersistableBundle);
95    method public void onReconfigured(@NonNull android.os.PersistableBundle);
96    method public void onReportReceived(@NonNull android.uwb.RangingReport);
97    method public void onStartFailed(int, @NonNull android.os.PersistableBundle);
98    method public void onStarted(@NonNull android.os.PersistableBundle);
99    method public void onStopFailed(int, @NonNull android.os.PersistableBundle);
100    method public void onStopped(int, @NonNull android.os.PersistableBundle);
101    field public static final int REASON_BAD_PARAMETERS = 3; // 0x3
102    field public static final int REASON_GENERIC_ERROR = 4; // 0x4
103    field public static final int REASON_LOCAL_REQUEST = 1; // 0x1
104    field public static final int REASON_MAX_SESSIONS_REACHED = 5; // 0x5
105    field public static final int REASON_PROTOCOL_SPECIFIC_ERROR = 7; // 0x7
106    field public static final int REASON_REMOTE_REQUEST = 2; // 0x2
107    field public static final int REASON_SYSTEM_POLICY = 6; // 0x6
108    field public static final int REASON_UNKNOWN = 0; // 0x0
109  }
110
111  public final class UwbAddress implements android.os.Parcelable {
112    method public int describeContents();
113    method @NonNull public static android.uwb.UwbAddress fromBytes(@NonNull byte[]);
114    method public int size();
115    method @NonNull public byte[] toBytes();
116    method public void writeToParcel(@NonNull android.os.Parcel, int);
117    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbAddress> CREATOR;
118    field public static final int EXTENDED_ADDRESS_BYTE_LENGTH = 8; // 0x8
119    field public static final int SHORT_ADDRESS_BYTE_LENGTH = 2; // 0x2
120  }
121
122  public final class UwbManager {
123    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
124    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
125    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);
126    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
127    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
128  }
129
130  public static interface UwbManager.AdapterStateCallback {
131    method public void onStateChanged(int, int);
132    field public static final int STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED = 1; // 0x1
133    field public static final int STATE_CHANGED_REASON_ERROR_UNKNOWN = 4; // 0x4
134    field public static final int STATE_CHANGED_REASON_SESSION_STARTED = 0; // 0x0
135    field public static final int STATE_CHANGED_REASON_SYSTEM_BOOT = 3; // 0x3
136    field public static final int STATE_CHANGED_REASON_SYSTEM_POLICY = 2; // 0x2
137    field public static final int STATE_DISABLED = 0; // 0x0
138    field public static final int STATE_ENABLED_ACTIVE = 2; // 0x2
139    field public static final int STATE_ENABLED_INACTIVE = 1; // 0x1
140  }
141
142}
143