xref: /aosp_15_r20/prebuilts/sdk/31/system/api/framework-uwb.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker// Signature format: 2.0
2*344a7f5eSAndroid Build Coastguard Workerpackage android.uwb {
3*344a7f5eSAndroid Build Coastguard Worker
4*344a7f5eSAndroid Build Coastguard Worker  public final class AngleMeasurement implements android.os.Parcelable {
5*344a7f5eSAndroid Build Coastguard Worker    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*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
7*344a7f5eSAndroid Build Coastguard Worker    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
8*344a7f5eSAndroid Build Coastguard Worker    method @FloatRange(from=0.0, to=3.141592653589793) public double getErrorRadians();
9*344a7f5eSAndroid Build Coastguard Worker    method @FloatRange(from=-3.141592653589793, to=3.141592653589793) public double getRadians();
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.uwb.AngleMeasurement> CREATOR;
12*344a7f5eSAndroid Build Coastguard Worker  }
13*344a7f5eSAndroid Build Coastguard Worker
14*344a7f5eSAndroid Build Coastguard Worker  public final class AngleOfArrivalMeasurement implements android.os.Parcelable {
15*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
16*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.uwb.AngleMeasurement getAltitude();
17*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.AngleMeasurement getAzimuth();
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.uwb.AngleOfArrivalMeasurement> CREATOR;
20*344a7f5eSAndroid Build Coastguard Worker  }
21*344a7f5eSAndroid Build Coastguard Worker
22*344a7f5eSAndroid Build Coastguard Worker  public static final class AngleOfArrivalMeasurement.Builder {
23*344a7f5eSAndroid Build Coastguard Worker    ctor public AngleOfArrivalMeasurement.Builder(@NonNull android.uwb.AngleMeasurement);
24*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.AngleOfArrivalMeasurement build();
25*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.AngleOfArrivalMeasurement.Builder setAltitude(@NonNull android.uwb.AngleMeasurement);
26*344a7f5eSAndroid Build Coastguard Worker  }
27*344a7f5eSAndroid Build Coastguard Worker
28*344a7f5eSAndroid Build Coastguard Worker  public final class DistanceMeasurement implements android.os.Parcelable {
29*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
30*344a7f5eSAndroid Build Coastguard Worker    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
31*344a7f5eSAndroid Build Coastguard Worker    method @FloatRange(from=0.0) public double getErrorMeters();
32*344a7f5eSAndroid Build Coastguard Worker    method public double getMeters();
33*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
34*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.DistanceMeasurement> CREATOR;
35*344a7f5eSAndroid Build Coastguard Worker  }
36*344a7f5eSAndroid Build Coastguard Worker
37*344a7f5eSAndroid Build Coastguard Worker  public static final class DistanceMeasurement.Builder {
38*344a7f5eSAndroid Build Coastguard Worker    ctor public DistanceMeasurement.Builder();
39*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.DistanceMeasurement build();
40*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.DistanceMeasurement.Builder setConfidenceLevel(@FloatRange(from=0.0, to=1.0) double);
41*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.DistanceMeasurement.Builder setErrorMeters(@FloatRange(from=0.0) double);
42*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.DistanceMeasurement.Builder setMeters(double);
43*344a7f5eSAndroid Build Coastguard Worker  }
44*344a7f5eSAndroid Build Coastguard Worker
45*344a7f5eSAndroid Build Coastguard Worker  public final class RangingMeasurement implements android.os.Parcelable {
46*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
47*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.uwb.AngleOfArrivalMeasurement getAngleOfArrivalMeasurement();
48*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.uwb.DistanceMeasurement getDistanceMeasurement();
49*344a7f5eSAndroid Build Coastguard Worker    method public long getElapsedRealtimeNanos();
50*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.UwbAddress getRemoteDeviceAddress();
51*344a7f5eSAndroid Build Coastguard Worker    method public int getStatus();
52*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
53*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingMeasurement> CREATOR;
54*344a7f5eSAndroid Build Coastguard Worker    field public static final int RANGING_STATUS_FAILURE_OUT_OF_RANGE = 1; // 0x1
55*344a7f5eSAndroid Build Coastguard Worker    field public static final int RANGING_STATUS_FAILURE_UNKNOWN_ERROR = -1; // 0xffffffff
56*344a7f5eSAndroid Build Coastguard Worker    field public static final int RANGING_STATUS_SUCCESS = 0; // 0x0
57*344a7f5eSAndroid Build Coastguard Worker  }
58*344a7f5eSAndroid Build Coastguard Worker
59*344a7f5eSAndroid Build Coastguard Worker  public static final class RangingMeasurement.Builder {
60*344a7f5eSAndroid Build Coastguard Worker    ctor public RangingMeasurement.Builder();
61*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement build();
62*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement.Builder setAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement);
63*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement.Builder setDistanceMeasurement(@NonNull android.uwb.DistanceMeasurement);
64*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement.Builder setElapsedRealtimeNanos(long);
65*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement.Builder setRemoteDeviceAddress(@NonNull android.uwb.UwbAddress);
66*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingMeasurement.Builder setStatus(int);
67*344a7f5eSAndroid Build Coastguard Worker  }
68*344a7f5eSAndroid Build Coastguard Worker
69*344a7f5eSAndroid Build Coastguard Worker  public final class RangingReport implements android.os.Parcelable {
70*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
71*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public java.util.List<android.uwb.RangingMeasurement> getMeasurements();
72*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
73*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingReport> CREATOR;
74*344a7f5eSAndroid Build Coastguard Worker  }
75*344a7f5eSAndroid Build Coastguard Worker
76*344a7f5eSAndroid Build Coastguard Worker  public static final class RangingReport.Builder {
77*344a7f5eSAndroid Build Coastguard Worker    ctor public RangingReport.Builder();
78*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingReport.Builder addMeasurement(@NonNull android.uwb.RangingMeasurement);
79*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingReport.Builder addMeasurements(@NonNull java.util.List<android.uwb.RangingMeasurement>);
80*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.uwb.RangingReport build();
81*344a7f5eSAndroid Build Coastguard Worker  }
82*344a7f5eSAndroid Build Coastguard Worker
83*344a7f5eSAndroid Build Coastguard Worker  public final class RangingSession implements java.lang.AutoCloseable {
84*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close();
85*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle);
86*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle);
87*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop();
88*344a7f5eSAndroid Build Coastguard Worker  }
89*344a7f5eSAndroid Build Coastguard Worker
90*344a7f5eSAndroid Build Coastguard Worker  public static interface RangingSession.Callback {
91*344a7f5eSAndroid Build Coastguard Worker    method public void onClosed(int, @NonNull android.os.PersistableBundle);
92*344a7f5eSAndroid Build Coastguard Worker    method public void onOpenFailed(int, @NonNull android.os.PersistableBundle);
93*344a7f5eSAndroid Build Coastguard Worker    method public void onOpened(@NonNull android.uwb.RangingSession);
94*344a7f5eSAndroid Build Coastguard Worker    method public void onReconfigureFailed(int, @NonNull android.os.PersistableBundle);
95*344a7f5eSAndroid Build Coastguard Worker    method public void onReconfigured(@NonNull android.os.PersistableBundle);
96*344a7f5eSAndroid Build Coastguard Worker    method public void onReportReceived(@NonNull android.uwb.RangingReport);
97*344a7f5eSAndroid Build Coastguard Worker    method public void onStartFailed(int, @NonNull android.os.PersistableBundle);
98*344a7f5eSAndroid Build Coastguard Worker    method public void onStarted(@NonNull android.os.PersistableBundle);
99*344a7f5eSAndroid Build Coastguard Worker    method public void onStopFailed(int, @NonNull android.os.PersistableBundle);
100*344a7f5eSAndroid Build Coastguard Worker    method public void onStopped(int, @NonNull android.os.PersistableBundle);
101*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_BAD_PARAMETERS = 3; // 0x3
102*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_GENERIC_ERROR = 4; // 0x4
103*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_LOCAL_REQUEST = 1; // 0x1
104*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_MAX_SESSIONS_REACHED = 5; // 0x5
105*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_PROTOCOL_SPECIFIC_ERROR = 7; // 0x7
106*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_REMOTE_REQUEST = 2; // 0x2
107*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_SYSTEM_POLICY = 6; // 0x6
108*344a7f5eSAndroid Build Coastguard Worker    field public static final int REASON_UNKNOWN = 0; // 0x0
109*344a7f5eSAndroid Build Coastguard Worker  }
110*344a7f5eSAndroid Build Coastguard Worker
111*344a7f5eSAndroid Build Coastguard Worker  public final class UwbAddress implements android.os.Parcelable {
112*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
113*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public static android.uwb.UwbAddress fromBytes(@NonNull byte[]);
114*344a7f5eSAndroid Build Coastguard Worker    method public int size();
115*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] toBytes();
116*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
117*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbAddress> CREATOR;
118*344a7f5eSAndroid Build Coastguard Worker    field public static final int EXTENDED_ADDRESS_BYTE_LENGTH = 8; // 0x8
119*344a7f5eSAndroid Build Coastguard Worker    field public static final int SHORT_ADDRESS_BYTE_LENGTH = 2; // 0x2
120*344a7f5eSAndroid Build Coastguard Worker  }
121*344a7f5eSAndroid Build Coastguard Worker
122*344a7f5eSAndroid Build Coastguard Worker  public final class UwbManager {
123*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
124*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
125*344a7f5eSAndroid Build Coastguard Worker    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*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
127*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
128*344a7f5eSAndroid Build Coastguard Worker  }
129*344a7f5eSAndroid Build Coastguard Worker
130*344a7f5eSAndroid Build Coastguard Worker  public static interface UwbManager.AdapterStateCallback {
131*344a7f5eSAndroid Build Coastguard Worker    method public void onStateChanged(int, int);
132*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED = 1; // 0x1
133*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_CHANGED_REASON_ERROR_UNKNOWN = 4; // 0x4
134*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_CHANGED_REASON_SESSION_STARTED = 0; // 0x0
135*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_CHANGED_REASON_SYSTEM_BOOT = 3; // 0x3
136*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_CHANGED_REASON_SYSTEM_POLICY = 2; // 0x2
137*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_DISABLED = 0; // 0x0
138*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_ENABLED_ACTIVE = 2; // 0x2
139*344a7f5eSAndroid Build Coastguard Worker    field public static final int STATE_ENABLED_INACTIVE = 1; // 0x1
140*344a7f5eSAndroid Build Coastguard Worker  }
141*344a7f5eSAndroid Build Coastguard Worker
142*344a7f5eSAndroid Build Coastguard Worker}
143