Skip to content
Snippets Groups Projects
Commit 4aeba805 authored by Brian Stack's avatar Brian Stack Committed by Automerger Merge Worker
Browse files

Merge "Add new android.permission.UWB_PRIVILEGED" am: 613b8c89

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifaf72ea7489764a6075c523f797778107178e168
parents bb6c348b 613b8c89
No related branches found
No related tags found
No related merge requests found
......@@ -239,6 +239,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";
......@@ -12695,10 +12696,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 {
......@@ -12734,18 +12735,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
......
......@@ -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(
......
......@@ -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) {
......
......@@ -1922,6 +1922,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 -->
<!-- ================================== -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment