Loading core/api/system-current.txt +17 −16 Original line number Diff line number Diff line Loading @@ -238,6 +238,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"; Loading Loading @@ -12574,10 +12575,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 { Loading Loading @@ -12613,18 +12614,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 core/java/android/uwb/RangingSession.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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( Loading core/java/android/uwb/UwbManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); } Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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()) { Loading Loading @@ -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 { Loading @@ -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 { Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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) { Loading core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -1916,6 +1916,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 --> <!-- ================================== --> Loading Loading
core/api/system-current.txt +17 −16 Original line number Diff line number Diff line Loading @@ -238,6 +238,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"; Loading Loading @@ -12574,10 +12575,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 { Loading Loading @@ -12613,18 +12614,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
core/java/android/uwb/RangingSession.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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( Loading
core/java/android/uwb/UwbManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); } Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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()) { Loading Loading @@ -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 { Loading @@ -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 { Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading @@ -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(); Loading Loading @@ -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) { Loading
core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -1916,6 +1916,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 --> <!-- ================================== --> Loading