Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b2df397 authored by Brian Stack's avatar Brian Stack
Browse files

Add UWB APIs to SystemApi

Bug: 170323306
Test: atest UwbManagerTests
Change-Id: Id05accd44918ac6b9f11e78ee742fbd007896f7a
parent 022ba65d
Loading
Loading
Loading
Loading
+158 −0
Original line number Diff line number Diff line
@@ -12097,6 +12097,164 @@ package android.util {
}
package android.uwb {
  public final class AngleMeasurement implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
    method @FloatRange(from=0.0, to=3.141592653589793) public double getErrorRadians();
    method @FloatRange(from=-3.141592653589793, to=3.141592653589793) public double getRadians();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.AngleMeasurement> CREATOR;
  }
  public static final class AngleMeasurement.Builder {
    ctor public AngleMeasurement.Builder();
    method @NonNull public android.uwb.AngleMeasurement build();
    method @NonNull public android.uwb.AngleMeasurement.Builder setConfidenceLevel(double);
    method @NonNull public android.uwb.AngleMeasurement.Builder setErrorRadians(double);
    method @NonNull public android.uwb.AngleMeasurement.Builder setRadians(double);
  }
  public final class AngleOfArrivalMeasurement implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.uwb.AngleMeasurement getAltitude();
    method @NonNull public android.uwb.AngleMeasurement getAzimuth();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.AngleOfArrivalMeasurement> CREATOR;
  }
  public static final class AngleOfArrivalMeasurement.Builder {
    ctor public AngleOfArrivalMeasurement.Builder();
    method @NonNull public android.uwb.AngleOfArrivalMeasurement build();
    method @NonNull public android.uwb.AngleOfArrivalMeasurement.Builder setAltitude(@NonNull android.uwb.AngleMeasurement);
    method @NonNull public android.uwb.AngleOfArrivalMeasurement.Builder setAzimuth(@NonNull android.uwb.AngleMeasurement);
  }
  public final class DistanceMeasurement implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel();
    method public double getErrorMeters();
    method public double getMeters();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.DistanceMeasurement> CREATOR;
  }
  public static final class DistanceMeasurement.Builder {
    ctor public DistanceMeasurement.Builder();
    method @NonNull public android.uwb.DistanceMeasurement build();
    method @NonNull public android.uwb.DistanceMeasurement.Builder setConfidenceLevel(double);
    method @NonNull public android.uwb.DistanceMeasurement.Builder setErrorMeters(double);
    method @NonNull public android.uwb.DistanceMeasurement.Builder setMeters(double);
  }
  public final class RangingMeasurement implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.uwb.AngleOfArrivalMeasurement getAngleOfArrivalMeasurement();
    method @Nullable public android.uwb.DistanceMeasurement getDistanceMeasurement();
    method public long getElapsedRealtimeNanos();
    method @NonNull public android.uwb.UwbAddress getRemoteDeviceAddress();
    method public int getStatus();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingMeasurement> CREATOR;
    field public static final int RANGING_STATUS_FAILURE_OUT_OF_RANGE = 1; // 0x1
    field public static final int RANGING_STATUS_FAILURE_UNKNOWN_ERROR = -1; // 0xffffffff
    field public static final int RANGING_STATUS_SUCCESS = 0; // 0x0
  }
  public static final class RangingMeasurement.Builder {
    ctor public RangingMeasurement.Builder();
    method @NonNull public android.uwb.RangingMeasurement build();
    method @NonNull public android.uwb.RangingMeasurement.Builder setAngleOfArrivalMeasurement(@NonNull android.uwb.AngleOfArrivalMeasurement);
    method @NonNull public android.uwb.RangingMeasurement.Builder setDistanceMeasurement(@NonNull android.uwb.DistanceMeasurement);
    method @NonNull public android.uwb.RangingMeasurement.Builder setElapsedRealtimeNanos(long);
    method @NonNull public android.uwb.RangingMeasurement.Builder setRemoteDeviceAddress(@NonNull android.uwb.UwbAddress);
    method @NonNull public android.uwb.RangingMeasurement.Builder setStatus(int);
  }
  public final class RangingReport implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public java.util.List<android.uwb.RangingMeasurement> getMeasurements();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.RangingReport> CREATOR;
  }
  public static final class RangingReport.Builder {
    ctor public RangingReport.Builder();
    method @NonNull public android.uwb.RangingReport.Builder addMeasurement(@NonNull android.uwb.RangingMeasurement);
    method @NonNull public android.uwb.RangingReport.Builder addMeasurements(@NonNull java.util.List<android.uwb.RangingMeasurement>);
    method @NonNull public android.uwb.RangingReport build();
  }
  public final class RangingSession implements java.lang.AutoCloseable {
    method public void close();
    method public void reconfigure(@NonNull android.os.PersistableBundle);
    method public void start(@NonNull android.os.PersistableBundle);
    method public void stop();
  }
  public static interface RangingSession.Callback {
    method public void onClosed(int, @NonNull android.os.PersistableBundle);
    method public void onOpenFailed(int, @NonNull android.os.PersistableBundle);
    method public void onOpened(@NonNull android.uwb.RangingSession);
    method public void onReconfigureFailed(int, @NonNull android.os.PersistableBundle);
    method public void onReconfigured(@NonNull android.os.PersistableBundle);
    method public void onReportReceived(@NonNull android.uwb.RangingReport);
    method public void onStartFailed(int, @NonNull android.os.PersistableBundle);
    method public void onStarted(@NonNull android.os.PersistableBundle);
    method public void onStopFailed(int, @NonNull android.os.PersistableBundle);
    method public void onStopped();
    field public static final int REASON_BAD_PARAMETERS = 3; // 0x3
    field public static final int REASON_GENERIC_ERROR = 4; // 0x4
    field public static final int REASON_LOCAL_REQUEST = 1; // 0x1
    field public static final int REASON_MAX_SESSIONS_REACHED = 5; // 0x5
    field public static final int REASON_PROTOCOL_SPECIFIC_ERROR = 7; // 0x7
    field public static final int REASON_REMOTE_REQUEST = 2; // 0x2
    field public static final int REASON_SYSTEM_POLICY = 6; // 0x6
    field public static final int REASON_UNKNOWN = 0; // 0x0
  }
  public final class UwbAddress implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public static android.uwb.UwbAddress fromBytes(@NonNull byte[]);
    method public int size();
    method @NonNull public byte[] toBytes();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.uwb.UwbAddress> CREATOR;
    field public static final int EXTENDED_ADDRESS_BYTE_LENGTH = 8; // 0x8
    field public static final int SHORT_ADDRESS_BYTE_LENGTH = 2; // 0x2
  }
  public final class UwbManager {
    method public long elapsedRealtimeResolutionNanos();
    method public int getAngleOfArrivalSupport();
    method public int getMaxRemoteDevicesPerInitiatorSession();
    method public int getMaxRemoteDevicesPerResponderSession();
    method public int getMaxSimultaneousSessions();
    method @NonNull public android.os.PersistableBundle getSpecificationInfo();
    method @NonNull public java.util.List<java.lang.Integer> getSupportedChannelNumbers();
    method @NonNull public java.util.Set<java.lang.Integer> getSupportedPreambleCodeIndices();
    method public boolean isRangingSupported();
    method @NonNull public AutoCloseable openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
    method public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
    method public void unregisterAdapterStateCallback(@NonNull android.uwb.UwbManager.AdapterStateCallback);
    field public static final int ANGLE_OF_ARRIVAL_SUPPORT_TYPE_2D = 2; // 0x2
    field public static final int ANGLE_OF_ARRIVAL_SUPPORT_TYPE_3D_HEMISPHERICAL = 3; // 0x3
    field public static final int ANGLE_OF_ARRIVAL_SUPPORT_TYPE_3D_SPHERICAL = 4; // 0x4
    field public static final int ANGLE_OF_ARRIVAL_SUPPORT_TYPE_NONE = 1; // 0x1
  }
  public static interface UwbManager.AdapterStateCallback {
    method public void onStateChanged(boolean, int);
    field public static final int STATE_CHANGED_REASON_ALL_SESSIONS_CLOSED = 1; // 0x1
    field public static final int STATE_CHANGED_REASON_ERROR_UNKNOWN = 4; // 0x4
    field public static final int STATE_CHANGED_REASON_SESSION_STARTED = 0; // 0x0
    field public static final int STATE_CHANGED_REASON_SYSTEM_BOOT = 3; // 0x3
    field public static final int STATE_CHANGED_REASON_SYSTEM_POLICY = 2; // 0x2
  }
}
package android.view {
  public abstract class Window {
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.uwb;

import android.annotation.FloatRange;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

@@ -31,6 +32,7 @@ import java.util.Objects;
 *
 * @hide
 */
@SystemApi
public final class AngleMeasurement implements Parcelable {
    private final double mRadians;
    private final double mErrorRadians;
+10 −10
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.uwb;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

@@ -28,6 +29,7 @@ import java.util.Objects;
 *
 * @hide
 */
@SystemApi
public final class AngleOfArrivalMeasurement implements Parcelable {
    private final AngleMeasurement mAzimuthAngleMeasurement;
    private final AngleMeasurement mAltitudeAngleMeasurement;
@@ -53,7 +55,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
     * @return the azimuth {@link AngleMeasurement}
     */
    @NonNull
    public AngleMeasurement getAzimuthAngleMeasurement() {
    public AngleMeasurement getAzimuth() {
        return mAzimuthAngleMeasurement;
    }

@@ -70,7 +72,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
     * @return altitude {@link AngleMeasurement} or null when this is not available
     */
    @Nullable
    public AngleMeasurement getAltitudeAngleMeasurement() {
    public AngleMeasurement getAltitude() {
        return mAltitudeAngleMeasurement;
    }

@@ -85,8 +87,8 @@ public final class AngleOfArrivalMeasurement implements Parcelable {

        if (obj instanceof AngleOfArrivalMeasurement) {
            AngleOfArrivalMeasurement other = (AngleOfArrivalMeasurement) obj;
            return mAzimuthAngleMeasurement.equals(other.getAzimuthAngleMeasurement())
                    && mAltitudeAngleMeasurement.equals(other.getAltitudeAngleMeasurement());
            return mAzimuthAngleMeasurement.equals(other.getAzimuth())
                    && mAltitudeAngleMeasurement.equals(other.getAltitude());
        }
        return false;
    }
@@ -116,11 +118,9 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
                public AngleOfArrivalMeasurement createFromParcel(Parcel in) {
                    Builder builder = new Builder();

                    builder.setAzimuthAngleMeasurement(
                            in.readParcelable(AngleMeasurement.class.getClassLoader()));
                    builder.setAzimuth(in.readParcelable(AngleMeasurement.class.getClassLoader()));

                    builder.setAltitudeAngleMeasurement(
                            in.readParcelable(AngleMeasurement.class.getClassLoader()));
                    builder.setAltitude(in.readParcelable(AngleMeasurement.class.getClassLoader()));

                    return builder.build();
                }
@@ -144,7 +144,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
         * @param azimuthAngle azimuth angle
         */
        @NonNull
        public Builder setAzimuthAngleMeasurement(@NonNull AngleMeasurement azimuthAngle) {
        public Builder setAzimuth(@NonNull AngleMeasurement azimuthAngle) {
            mAzimuthAngleMeasurement = azimuthAngle;
            return this;
        }
@@ -155,7 +155,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
         * @param altitudeAngle altitude angle
         */
        @NonNull
        public Builder setAltitudeAngleMeasurement(@NonNull AngleMeasurement altitudeAngle) {
        public Builder setAltitude(@NonNull AngleMeasurement altitudeAngle) {
            mAltitudeAngleMeasurement = altitudeAngle;
            return this;
        }
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.uwb;
import android.annotation.FloatRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

@@ -32,6 +33,7 @@ import java.util.Objects;
 *
 * @hide
 */
@SystemApi
public final class DistanceMeasurement implements Parcelable {
    private final double mMeters;
    private final double mErrorMeters;
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemClock;
@@ -33,6 +34,7 @@ import java.util.Objects;
 *
 * @hide
 */
@SystemApi
public final class RangingMeasurement implements Parcelable {
    private final UwbAddress mRemoteDeviceAddress;
    private final @Status int mStatus;
Loading