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

Commit ae759b07 authored by Brian Stack's avatar Brian Stack Committed by Automerger Merge Worker
Browse files

Merge "Add new android.permission.UWB_PRIVILEGED" am: 613b8c89 am: 4aeba805 am: 66c83bd3

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1566904

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I98ea2204ab488292b90128e4ab913adbd0857c25
parents 3f3fbe71 66c83bd3
Loading
Loading
Loading
Loading
+17 −16
Original line number Diff line number Diff line
@@ -272,6 +272,7 @@ package android {
    field public static final String UPGRADE_RUNTIME_PERMISSIONS = "android.permission.UPGRADE_RUNTIME_PERMISSIONS";
    field public static final String USER_ACTIVITY = "android.permission.USER_ACTIVITY";
    field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
    field public static final String UWB_PRIVILEGED = "android.permission.UWB_PRIVILEGED";
    field public static final String WHITELIST_AUTO_REVOKE_PERMISSIONS = "android.permission.WHITELIST_AUTO_REVOKE_PERMISSIONS";
    field public static final String WHITELIST_RESTRICTED_PERMISSIONS = "android.permission.WHITELIST_RESTRICTED_PERMISSIONS";
    field public static final String WIFI_ACCESS_COEX_UNSAFE_CHANNELS = "android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS";
@@ -14212,10 +14213,10 @@ package android.uwb {
  }
  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();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle);
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle);
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop();
  }
  public static interface RangingSession.Callback {
@@ -14251,18 +14252,18 @@ package android.uwb {
  }
  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);
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getAngleOfArrivalSupport();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxRemoteDevicesPerInitiatorSession();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxRemoteDevicesPerResponderSession();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxSimultaneousSessions();
    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.List<java.lang.Integer> getSupportedChannelNumbers();
    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.Set<java.lang.Integer> getSupportedPreambleCodeIndices();
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public boolean isRangingSupported();
    method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public AutoCloseable openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
    method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) 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
+6 −0
Original line number Diff line number Diff line
@@ -16,8 +16,10 @@

package android.uwb;

import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.os.Binder;
import android.os.PersistableBundle;
@@ -247,6 +249,7 @@ public final class RangingSession implements AutoCloseable {
     *
     * @param params configuration parameters for starting the session
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void start(@NonNull PersistableBundle params) {
        if (mState != State.IDLE) {
            throw new IllegalStateException();
@@ -271,6 +274,7 @@ public final class RangingSession implements AutoCloseable {
     *
     * @param params the parameters to reconfigure and their new values
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void reconfigure(@NonNull PersistableBundle params) {
        if (mState != State.ACTIVE && mState != State.IDLE) {
            throw new IllegalStateException();
@@ -302,6 +306,7 @@ public final class RangingSession implements AutoCloseable {
     * <p>On failure to stop the session,
     * {@link RangingSession.Callback#onStopFailed(int, PersistableBundle)} is invoked.
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void stop() {
        if (mState != State.ACTIVE) {
            throw new IllegalStateException();
@@ -333,6 +338,7 @@ public final class RangingSession implements AutoCloseable {
     * {@link #close()}, even if the {@link RangingSession} is already closed.
     */
    @Override
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void close() {
        if (mState == State.CLOSED) {
            mExecutor.execute(() -> mCallback.onClosed(
+14 −0
Original line number Diff line number Diff line
@@ -16,9 +16,11 @@

package android.uwb;

import android.Manifest;
import android.annotation.CallbackExecutor;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.SystemService;
@@ -154,6 +156,7 @@ public final class UwbManager {
     * @param executor an {@link Executor} to execute given callback
     * @param callback user implementation of the {@link AdapterStateCallback}
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void registerAdapterStateCallback(@NonNull @CallbackExecutor Executor executor,
            @NonNull AdapterStateCallback callback) {
        mAdapterStateListener.register(executor, callback);
@@ -168,6 +171,7 @@ public final class UwbManager {
     *
     * @param callback user implementation of the {@link AdapterStateCallback}
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public void unregisterAdapterStateCallback(@NonNull AdapterStateCallback callback) {
        mAdapterStateListener.unregister(callback);
    }
@@ -181,6 +185,7 @@ public final class UwbManager {
     * @return {@link PersistableBundle} of the device's supported UWB protocols and parameters
     */
    @NonNull
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public PersistableBundle getSpecificationInfo() {
        try {
            return mUwbAdapter.getSpecificationInfo();
@@ -194,6 +199,7 @@ public final class UwbManager {
     *
     * @return true if ranging is supported
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public boolean isRangingSupported() {
        try {
            return mUwbAdapter.isRangingSupported();
@@ -250,6 +256,7 @@ public final class UwbManager {
     * @return angle of arrival type supported
     */
    @AngleOfArrivalSupportType
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public int getAngleOfArrivalSupport() {
        try {
            switch (mUwbAdapter.getAngleOfArrivalSupport()) {
@@ -281,6 +288,7 @@ public final class UwbManager {
     * @return {@link List} of supported channel numbers ordered by preference
     */
    @NonNull
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public List<Integer> getSupportedChannelNumbers() {
        List<Integer> channels = new ArrayList<>();
        try {
@@ -300,6 +308,7 @@ public final class UwbManager {
     * @return {@link List} of supported preamble code indices
     */
    @NonNull
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public Set<Integer> getSupportedPreambleCodeIndices() {
        Set<Integer> preambles = new HashSet<>();
        try {
@@ -320,6 +329,7 @@ public final class UwbManager {
     * @return the timestamp resolution in nanoseconds
     */
    @SuppressLint("MethodNameUnits")
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public long elapsedRealtimeResolutionNanos() {
        try {
            return mUwbAdapter.getTimestampResolutionNanos();
@@ -333,6 +343,7 @@ public final class UwbManager {
     *
     * @return the maximum allowed number of simultaneously open {@link RangingSession} instances.
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public int getMaxSimultaneousSessions() {
        try {
            return mUwbAdapter.getMaxSimultaneousSessions();
@@ -347,6 +358,7 @@ public final class UwbManager {
     *
     * @return the maximum number of remote devices per {@link RangingSession}
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public int getMaxRemoteDevicesPerInitiatorSession() {
        try {
            return mUwbAdapter.getMaxRemoteDevicesPerInitiatorSession();
@@ -361,6 +373,7 @@ public final class UwbManager {
     *
     * @return the maximum number of remote devices per {@link RangingSession}
     */
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public int getMaxRemoteDevicesPerResponderSession() {
        try {
            return mUwbAdapter.getMaxRemoteDevicesPerResponderSession();
@@ -396,6 +409,7 @@ public final class UwbManager {
     *         {@link RangingSession.Callback#onOpened(RangingSession)}.
     */
    @NonNull
    @RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
    public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
            @NonNull @CallbackExecutor Executor executor,
            @NonNull RangingSession.Callback callbacks) {
+6 −0
Original line number Diff line number Diff line
@@ -2011,6 +2011,12 @@
    <permission android:name="android.permission.ENABLE_TEST_HARNESS_MODE"
        android:protectionLevel="signature" />

    <!-- @SystemApi Allows access to ultra wideband device.
     <p>Not for use by third-party applications.
     @hide -->
    <permission android:name="android.permission.UWB_PRIVILEGED"
                android:protectionLevel="signature|privileged" />

    <!-- ================================== -->
    <!-- Permissions for accessing accounts -->
    <!-- ================================== -->