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.os.PersistableBundle getRangingMeasurementMetadata(); 54 method @NonNull public android.uwb.UwbAddress getRemoteDeviceAddress(); 55 method @IntRange(from=android.uwb.RangingMeasurement.RSSI_UNKNOWN, to=android.uwb.RangingMeasurement.RSSI_MAX) public int getRssiDbm(); 56 method public int getStatus(); 57 method public void writeToParcel(@NonNull android.os.Parcel, int); 58 field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingMeasurement> CREATOR; 59 field public static final int LOS = 0; // 0x0 60 field public static final int LOS_UNDETERMINED = 255; // 0xff 61 field public static final int MEASUREMENT_FOCUS_ANGLE_OF_ARRIVAL_AZIMUTH = 2; // 0x2 62 field public static final int MEASUREMENT_FOCUS_ANGLE_OF_ARRIVAL_ELEVATION = 3; // 0x3 63 field public static final int MEASUREMENT_FOCUS_NONE = 0; // 0x0 64 field public static final int MEASUREMENT_FOCUS_RANGE = 1; // 0x1 65 field public static final int NLOS = 1; // 0x1 66 field public static final int RANGING_STATUS_FAILURE_OUT_OF_RANGE = 1; // 0x1 67 field public static final int RANGING_STATUS_FAILURE_UNKNOWN_ERROR = -1; // 0xffffffff 68 field public static final int RANGING_STATUS_SUCCESS = 0; // 0x0 69 field public static final int RSSI_MAX = -1; // 0xffffffff 70 field public static final int RSSI_MIN = -127; // 0xffffff81 71 field public static final int RSSI_UNKNOWN = -128; // 0xffffff80 72 } 73 74 public static final class RangingMeasurement.Builder { 75 ctor public RangingMeasurement.Builder(); 76 method @NonNull public android.uwb.RangingMeasurement build(); 77 method @NonNull public android.uwb.RangingMeasurement.Builder setAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement); 78 method @NonNull public android.uwb.RangingMeasurement.Builder setDestinationAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement); 79 method @NonNull public android.uwb.RangingMeasurement.Builder setDistanceMeasurement(@NonNull android.uwb.DistanceMeasurement); 80 method @NonNull public android.uwb.RangingMeasurement.Builder setElapsedRealtimeNanos(long); 81 method @NonNull public android.uwb.RangingMeasurement.Builder setLineOfSight(int); 82 method @NonNull public android.uwb.RangingMeasurement.Builder setMeasurementFocus(int); 83 method @NonNull public android.uwb.RangingMeasurement.Builder setRangingMeasurementMetadata(@NonNull android.os.PersistableBundle); 84 method @NonNull public android.uwb.RangingMeasurement.Builder setRemoteDeviceAddress(@NonNull android.uwb.UwbAddress); 85 method @NonNull public android.uwb.RangingMeasurement.Builder setRssiDbm(@IntRange(from=android.uwb.RangingMeasurement.RSSI_UNKNOWN, to=android.uwb.RangingMeasurement.RSSI_MAX) int); 86 method @NonNull public android.uwb.RangingMeasurement.Builder setStatus(int); 87 } 88 89 public final class RangingReport implements android.os.Parcelable { 90 method public int describeContents(); 91 method @NonNull public java.util.List<android.uwb.RangingMeasurement> getMeasurements(); 92 method @NonNull public android.os.PersistableBundle getRangingReportMetadata(); 93 method public void writeToParcel(@NonNull android.os.Parcel, int); 94 field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingReport> CREATOR; 95 } 96 97 public static final class RangingReport.Builder { 98 ctor public RangingReport.Builder(); 99 method @NonNull public android.uwb.RangingReport.Builder addMeasurement(@NonNull android.uwb.RangingMeasurement); 100 method @NonNull public android.uwb.RangingReport.Builder addMeasurements(@NonNull java.util.List<android.uwb.RangingMeasurement>); 101 method @NonNull public android.uwb.RangingReport.Builder addRangingReportMetadata(@NonNull android.os.PersistableBundle); 102 method @NonNull public android.uwb.RangingReport build(); 103 } 104 105 public final class RangingSession implements java.lang.AutoCloseable { 106 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void addControlee(@NonNull android.os.PersistableBundle); 107 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close(); 108 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void pause(@NonNull android.os.PersistableBundle); 109 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int queryMaxDataSizeBytes(); 110 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle); 111 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void removeControlee(@NonNull android.os.PersistableBundle); 112 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void resume(@NonNull android.os.PersistableBundle); 113 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void sendData(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle, @NonNull byte[]); 114 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle); 115 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop(); 116 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void updatePose(@NonNull android.os.PersistableBundle); 117 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void updateRangingRoundsDtTag(@NonNull android.os.PersistableBundle); 118 } 119 120 public static interface RangingSession.Callback { 121 method public void onClosed(int, @NonNull android.os.PersistableBundle); 122 method public default void onControleeAddFailed(int, @NonNull android.os.PersistableBundle); 123 method public default void onControleeAdded(@NonNull android.os.PersistableBundle); 124 method public default void onControleeRemoveFailed(int, @NonNull android.os.PersistableBundle); 125 method public default void onControleeRemoved(@NonNull android.os.PersistableBundle); 126 method public default void onDataReceiveFailed(@NonNull android.uwb.UwbAddress, int, @NonNull android.os.PersistableBundle); 127 method public default void onDataReceived(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle, @NonNull byte[]); 128 method public default void onDataSendFailed(@NonNull android.uwb.UwbAddress, int, @NonNull android.os.PersistableBundle); 129 method public default void onDataSent(@NonNull android.uwb.UwbAddress, @NonNull android.os.PersistableBundle); 130 method public void onOpenFailed(int, @NonNull android.os.PersistableBundle); 131 method public void onOpened(@NonNull android.uwb.RangingSession); 132 method public default void onPauseFailed(int, @NonNull android.os.PersistableBundle); 133 method public default void onPaused(@NonNull android.os.PersistableBundle); 134 method public default void onRangingRoundsUpdateDtTagStatus(@NonNull android.os.PersistableBundle); 135 method public void onReconfigureFailed(int, @NonNull android.os.PersistableBundle); 136 method public void onReconfigured(@NonNull android.os.PersistableBundle); 137 method public void onReportReceived(@NonNull android.uwb.RangingReport); 138 method public default void onResumeFailed(int, @NonNull android.os.PersistableBundle); 139 method public default void onResumed(@NonNull android.os.PersistableBundle); 140 method public default void onServiceConnected(@NonNull android.os.PersistableBundle); 141 method public default void onServiceDiscovered(@NonNull android.os.PersistableBundle); 142 method public void onStartFailed(int, @NonNull android.os.PersistableBundle); 143 method public void onStarted(@NonNull android.os.PersistableBundle); 144 method public void onStopFailed(int, @NonNull android.os.PersistableBundle); 145 method public void onStopped(int, @NonNull android.os.PersistableBundle); 146 field public static final int CONTROLEE_FAILURE_REASON_MAX_CONTROLEE_REACHED = 0; // 0x0 147 field public static final int DATA_FAILURE_REASON_DATA_SIZE_TOO_LARGE = 10; // 0xa 148 field public static final int REASON_BAD_PARAMETERS = 3; // 0x3 149 field public static final int REASON_GENERIC_ERROR = 4; // 0x4 150 field public static final int REASON_INSUFFICIENT_SLOTS_PER_RR = 14; // 0xe 151 field public static final int REASON_LOCAL_REQUEST = 1; // 0x1 152 field public static final int REASON_MAX_RR_RETRY_REACHED = 9; // 0x9 153 field public static final int REASON_MAX_SESSIONS_REACHED = 5; // 0x5 154 field public static final int REASON_PROTOCOL_SPECIFIC_ERROR = 7; // 0x7 155 field public static final int REASON_REMOTE_REQUEST = 2; // 0x2 156 field public static final int REASON_SERVICE_CONNECTION_FAILURE = 11; // 0xb 157 field public static final int REASON_SERVICE_DISCOVERY_FAILURE = 10; // 0xa 158 field public static final int REASON_SE_INTERACTION_FAILURE = 13; // 0xd 159 field public static final int REASON_SE_NOT_SUPPORTED = 12; // 0xc 160 field public static final int REASON_SYSTEM_POLICY = 6; // 0x6 161 field public static final int REASON_SYSTEM_REGULATION = 15; // 0xf 162 field public static final int REASON_UNKNOWN = 0; // 0x0 163 } 164 165 public final class UwbActivityEnergyInfo implements android.os.Parcelable { 166 method public int describeContents(); 167 method @IntRange(from=0) public long getControllerIdleDurationMillis(); 168 method @IntRange(from=0) public long getControllerRxDurationMillis(); 169 method @IntRange(from=0) public long getControllerTxDurationMillis(); 170 method @IntRange(from=0) public long getControllerWakeCount(); 171 method public int getStackState(); 172 method public long getTimeSinceBootMillis(); 173 method public void writeToParcel(@NonNull android.os.Parcel, int); 174 field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbActivityEnergyInfo> CREATOR; 175 } 176 177 public static final class UwbActivityEnergyInfo.Builder { 178 ctor public UwbActivityEnergyInfo.Builder(); 179 method @NonNull public android.uwb.UwbActivityEnergyInfo build(); 180 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setControllerIdleDurationMillis(@IntRange(from=0) long); 181 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setControllerRxDurationMillis(@IntRange(from=0) long); 182 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setControllerTxDurationMillis(@IntRange(from=0) long); 183 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setControllerWakeCount(@IntRange(from=0) long); 184 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setStackState(int); 185 method @NonNull public android.uwb.UwbActivityEnergyInfo.Builder setTimeSinceBootMillis(long); 186 } 187 188 public final class UwbAddress implements android.os.Parcelable { 189 method public int describeContents(); 190 method @NonNull public static android.uwb.UwbAddress fromBytes(@NonNull byte[]); 191 method public int size(); 192 method @NonNull public byte[] toBytes(); 193 method public void writeToParcel(@NonNull android.os.Parcel, int); 194 field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbAddress> CREATOR; 195 field public static final int EXTENDED_ADDRESS_BYTE_LENGTH = 8; // 0x8 196 field public static final int SHORT_ADDRESS_BYTE_LENGTH = 2; // 0x2 197 } 198 199 public final class UwbManager { 200 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle addServiceProfile(@NonNull android.os.PersistableBundle); 201 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos(); 202 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos(@NonNull String); 203 method public int getAdapterState(); 204 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAdfCertificateInfo(@NonNull android.os.PersistableBundle); 205 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAdfProvisioningAuthorities(@NonNull android.os.PersistableBundle); 206 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getAllServiceProfiles(); 207 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.List<android.os.PersistableBundle> getChipInfos(); 208 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public String getDefaultChipId(); 209 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo(); 210 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo(@NonNull String); 211 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void getUwbActivityEnergyInfoAsync(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.uwb.UwbActivityEnergyInfo>); 212 method public boolean isUwbEnabled(); 213 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); 214 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); 215 method public void provisionProfileAdfByScript(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdfProvisionStateCallback); 216 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback); 217 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerUwbOemExtensionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.UwbOemExtensionCallback); 218 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerUwbVendorUciCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.UwbVendorUciCallback); 219 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int removeProfileAdf(@NonNull android.os.PersistableBundle); 220 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int removeServiceProfile(@NonNull android.os.PersistableBundle); 221 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int sendVendorUciMessage(@IntRange(from=0, to=15) int, int, @NonNull byte[]); 222 method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int sendVendorUciMessage(int, @IntRange(from=0, to=15) int, int, @NonNull byte[]); 223 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void setUwbEnabled(boolean); 224 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback); 225 method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void unregisterUwbOemExtensionCallback(@NonNull android.uwb.UwbManager.UwbOemExtensionCallback); 226 method public void unregisterUwbVendorUciCallback(@NonNull android.uwb.UwbManager.UwbVendorUciCallback); 227 field public static final int MESSAGE_TYPE_COMMAND = 1; // 0x1 228 field public static final int MESSAGE_TYPE_TEST_1 = 4; // 0x4 229 field public static final int MESSAGE_TYPE_TEST_2 = 5; // 0x5 230 field public static final int REMOVE_PROFILE_ADF_ERROR_INTERNAL = 2; // 0x2 231 field public static final int REMOVE_PROFILE_ADF_ERROR_UNKNOWN_SERVICE = 1; // 0x1 232 field public static final int REMOVE_PROFILE_ADF_SUCCESS = 0; // 0x0 233 field public static final int REMOVE_SERVICE_PROFILE_ERROR_INTERNAL = 2; // 0x2 234 field public static final int REMOVE_SERVICE_PROFILE_ERROR_UNKNOWN_SERVICE = 1; // 0x1 235 field public static final int REMOVE_SERVICE_PROFILE_SUCCESS = 0; // 0x0 236 field public static final int SEND_VENDOR_UCI_ERROR_HW = 1; // 0x1 237 field public static final int SEND_VENDOR_UCI_ERROR_INVALID_ARGS = 3; // 0x3 238 field public static final int SEND_VENDOR_UCI_ERROR_INVALID_GID = 4; // 0x4 239 field public static final int SEND_VENDOR_UCI_ERROR_OFF = 2; // 0x2 240 field public static final int SEND_VENDOR_UCI_SUCCESS = 0; // 0x0 241 } 242 243 public static interface UwbManager.AdapterStateCallback { 244 method public void onStateChanged(int, int); 245 field public static final int STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED = 1; // 0x1 246 field public static final int STATE_CHANGED_REASON_ERROR_UNKNOWN = 4; // 0x4 247 field public static final int STATE_CHANGED_REASON_SESSION_STARTED = 0; // 0x0 248 field public static final int STATE_CHANGED_REASON_SYSTEM_BOOT = 3; // 0x3 249 field public static final int STATE_CHANGED_REASON_SYSTEM_POLICY = 2; // 0x2 250 field public static final int STATE_CHANGED_REASON_SYSTEM_REGULATION = 5; // 0x5 251 field public static final int STATE_DISABLED = 0; // 0x0 252 field public static final int STATE_ENABLED_ACTIVE = 2; // 0x2 253 field public static final int STATE_ENABLED_INACTIVE = 1; // 0x1 254 } 255 256 public abstract static class UwbManager.AdfProvisionStateCallback { 257 ctor public UwbManager.AdfProvisionStateCallback(); 258 method public abstract void onProfileAdfsProvisionFailed(int, @NonNull android.os.PersistableBundle); 259 method public abstract void onProfileAdfsProvisioned(@NonNull android.os.PersistableBundle); 260 field public static final int REASON_INVALID_OID = 1; // 0x1 261 field public static final int REASON_SE_FAILURE = 2; // 0x2 262 field public static final int REASON_UNKNOWN = 3; // 0x3 263 } 264 265 public static interface UwbManager.UwbOemExtensionCallback { 266 method public boolean onCheckPointedTarget(@NonNull android.os.PersistableBundle); 267 method public void onDeviceStatusNotificationReceived(@NonNull android.os.PersistableBundle); 268 method @NonNull public android.uwb.RangingReport onRangingReportReceived(@NonNull android.uwb.RangingReport); 269 method @NonNull public int onSessionConfigurationComplete(@NonNull android.os.PersistableBundle); 270 method public void onSessionStatusNotificationReceived(@NonNull android.os.PersistableBundle); 271 } 272 273 public static interface UwbManager.UwbVendorUciCallback { 274 method public void onVendorUciNotification(@IntRange(from=9, to=15) int, int, @NonNull byte[]); 275 method public void onVendorUciResponse(@IntRange(from=0, to=15) int, int, @NonNull byte[]); 276 } 277 278} 279 280