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