Merge "Add new android.permission.UWB_PRIVILEGED"
This commit is contained in:
@@ -239,6 +239,7 @@ package android {
|
|||||||
field public static final String UPGRADE_RUNTIME_PERMISSIONS = "android.permission.UPGRADE_RUNTIME_PERMISSIONS";
|
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 USER_ACTIVITY = "android.permission.USER_ACTIVITY";
|
||||||
field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
|
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_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 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";
|
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 {
|
public final class RangingSession implements java.lang.AutoCloseable {
|
||||||
method public void close();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void close();
|
||||||
method public void reconfigure(@NonNull android.os.PersistableBundle);
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void reconfigure(@NonNull android.os.PersistableBundle);
|
||||||
method public void start(@NonNull android.os.PersistableBundle);
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void start(@NonNull android.os.PersistableBundle);
|
||||||
method public void stop();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public void stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static interface RangingSession.Callback {
|
public static interface RangingSession.Callback {
|
||||||
@@ -12734,18 +12735,18 @@ package android.uwb {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final class UwbManager {
|
public final class UwbManager {
|
||||||
method public long elapsedRealtimeResolutionNanos();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public long elapsedRealtimeResolutionNanos();
|
||||||
method public int getAngleOfArrivalSupport();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getAngleOfArrivalSupport();
|
||||||
method public int getMaxRemoteDevicesPerInitiatorSession();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxRemoteDevicesPerInitiatorSession();
|
||||||
method public int getMaxRemoteDevicesPerResponderSession();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxRemoteDevicesPerResponderSession();
|
||||||
method public int getMaxSimultaneousSessions();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public int getMaxSimultaneousSessions();
|
||||||
method @NonNull public android.os.PersistableBundle getSpecificationInfo();
|
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public android.os.PersistableBundle getSpecificationInfo();
|
||||||
method @NonNull public java.util.List<java.lang.Integer> getSupportedChannelNumbers();
|
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.List<java.lang.Integer> getSupportedChannelNumbers();
|
||||||
method @NonNull public java.util.Set<java.lang.Integer> getSupportedPreambleCodeIndices();
|
method @NonNull @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public java.util.Set<java.lang.Integer> getSupportedPreambleCodeIndices();
|
||||||
method public boolean isRangingSupported();
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) public boolean isRangingSupported();
|
||||||
method @NonNull public AutoCloseable openRangingSession(@NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.uwb.RangingSession.Callback);
|
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 public void registerAdapterStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.uwb.UwbManager.AdapterStateCallback);
|
method @RequiresPermission(android.Manifest.permission.UWB_PRIVILEGED) 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 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_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_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_3D_SPHERICAL = 4; // 0x4
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
@@ -247,6 +249,7 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
*
|
*
|
||||||
* @param params configuration parameters for starting the session
|
* @param params configuration parameters for starting the session
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void start(@NonNull PersistableBundle params) {
|
public void start(@NonNull PersistableBundle params) {
|
||||||
if (mState != State.IDLE) {
|
if (mState != State.IDLE) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
@@ -271,6 +274,7 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
*
|
*
|
||||||
* @param params the parameters to reconfigure and their new values
|
* @param params the parameters to reconfigure and their new values
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void reconfigure(@NonNull PersistableBundle params) {
|
public void reconfigure(@NonNull PersistableBundle params) {
|
||||||
if (mState != State.ACTIVE && mState != State.IDLE) {
|
if (mState != State.ACTIVE && mState != State.IDLE) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
@@ -302,6 +306,7 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
* <p>On failure to stop the session,
|
* <p>On failure to stop the session,
|
||||||
* {@link RangingSession.Callback#onStopFailed(int, PersistableBundle)} is invoked.
|
* {@link RangingSession.Callback#onStopFailed(int, PersistableBundle)} is invoked.
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void stop() {
|
public void stop() {
|
||||||
if (mState != State.ACTIVE) {
|
if (mState != State.ACTIVE) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
@@ -333,6 +338,7 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
* {@link #close()}, even if the {@link RangingSession} is already closed.
|
* {@link #close()}, even if the {@link RangingSession} is already closed.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void close() {
|
public void close() {
|
||||||
if (mState == State.CLOSED) {
|
if (mState == State.CLOSED) {
|
||||||
mExecutor.execute(() -> mCallback.onClosed(
|
mExecutor.execute(() -> mCallback.onClosed(
|
||||||
|
|||||||
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.annotation.CallbackExecutor;
|
import android.annotation.CallbackExecutor;
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.annotation.SystemService;
|
import android.annotation.SystemService;
|
||||||
@@ -154,6 +156,7 @@ public final class UwbManager {
|
|||||||
* @param executor an {@link Executor} to execute given callback
|
* @param executor an {@link Executor} to execute given callback
|
||||||
* @param callback user implementation of the {@link AdapterStateCallback}
|
* @param callback user implementation of the {@link AdapterStateCallback}
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void registerAdapterStateCallback(@NonNull @CallbackExecutor Executor executor,
|
public void registerAdapterStateCallback(@NonNull @CallbackExecutor Executor executor,
|
||||||
@NonNull AdapterStateCallback callback) {
|
@NonNull AdapterStateCallback callback) {
|
||||||
mAdapterStateListener.register(executor, callback);
|
mAdapterStateListener.register(executor, callback);
|
||||||
@@ -168,6 +171,7 @@ public final class UwbManager {
|
|||||||
*
|
*
|
||||||
* @param callback user implementation of the {@link AdapterStateCallback}
|
* @param callback user implementation of the {@link AdapterStateCallback}
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public void unregisterAdapterStateCallback(@NonNull AdapterStateCallback callback) {
|
public void unregisterAdapterStateCallback(@NonNull AdapterStateCallback callback) {
|
||||||
mAdapterStateListener.unregister(callback);
|
mAdapterStateListener.unregister(callback);
|
||||||
}
|
}
|
||||||
@@ -181,6 +185,7 @@ public final class UwbManager {
|
|||||||
* @return {@link PersistableBundle} of the device's supported UWB protocols and parameters
|
* @return {@link PersistableBundle} of the device's supported UWB protocols and parameters
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public PersistableBundle getSpecificationInfo() {
|
public PersistableBundle getSpecificationInfo() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.getSpecificationInfo();
|
return mUwbAdapter.getSpecificationInfo();
|
||||||
@@ -194,6 +199,7 @@ public final class UwbManager {
|
|||||||
*
|
*
|
||||||
* @return true if ranging is supported
|
* @return true if ranging is supported
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public boolean isRangingSupported() {
|
public boolean isRangingSupported() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.isRangingSupported();
|
return mUwbAdapter.isRangingSupported();
|
||||||
@@ -250,6 +256,7 @@ public final class UwbManager {
|
|||||||
* @return angle of arrival type supported
|
* @return angle of arrival type supported
|
||||||
*/
|
*/
|
||||||
@AngleOfArrivalSupportType
|
@AngleOfArrivalSupportType
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public int getAngleOfArrivalSupport() {
|
public int getAngleOfArrivalSupport() {
|
||||||
try {
|
try {
|
||||||
switch (mUwbAdapter.getAngleOfArrivalSupport()) {
|
switch (mUwbAdapter.getAngleOfArrivalSupport()) {
|
||||||
@@ -281,6 +288,7 @@ public final class UwbManager {
|
|||||||
* @return {@link List} of supported channel numbers ordered by preference
|
* @return {@link List} of supported channel numbers ordered by preference
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public List<Integer> getSupportedChannelNumbers() {
|
public List<Integer> getSupportedChannelNumbers() {
|
||||||
List<Integer> channels = new ArrayList<>();
|
List<Integer> channels = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
@@ -300,6 +308,7 @@ public final class UwbManager {
|
|||||||
* @return {@link List} of supported preamble code indices
|
* @return {@link List} of supported preamble code indices
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public Set<Integer> getSupportedPreambleCodeIndices() {
|
public Set<Integer> getSupportedPreambleCodeIndices() {
|
||||||
Set<Integer> preambles = new HashSet<>();
|
Set<Integer> preambles = new HashSet<>();
|
||||||
try {
|
try {
|
||||||
@@ -320,6 +329,7 @@ public final class UwbManager {
|
|||||||
* @return the timestamp resolution in nanoseconds
|
* @return the timestamp resolution in nanoseconds
|
||||||
*/
|
*/
|
||||||
@SuppressLint("MethodNameUnits")
|
@SuppressLint("MethodNameUnits")
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public long elapsedRealtimeResolutionNanos() {
|
public long elapsedRealtimeResolutionNanos() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.getTimestampResolutionNanos();
|
return mUwbAdapter.getTimestampResolutionNanos();
|
||||||
@@ -333,6 +343,7 @@ public final class UwbManager {
|
|||||||
*
|
*
|
||||||
* @return the maximum allowed number of simultaneously open {@link RangingSession} instances.
|
* @return the maximum allowed number of simultaneously open {@link RangingSession} instances.
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public int getMaxSimultaneousSessions() {
|
public int getMaxSimultaneousSessions() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.getMaxSimultaneousSessions();
|
return mUwbAdapter.getMaxSimultaneousSessions();
|
||||||
@@ -347,6 +358,7 @@ public final class UwbManager {
|
|||||||
*
|
*
|
||||||
* @return the maximum number of remote devices per {@link RangingSession}
|
* @return the maximum number of remote devices per {@link RangingSession}
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public int getMaxRemoteDevicesPerInitiatorSession() {
|
public int getMaxRemoteDevicesPerInitiatorSession() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.getMaxRemoteDevicesPerInitiatorSession();
|
return mUwbAdapter.getMaxRemoteDevicesPerInitiatorSession();
|
||||||
@@ -361,6 +373,7 @@ public final class UwbManager {
|
|||||||
*
|
*
|
||||||
* @return the maximum number of remote devices per {@link RangingSession}
|
* @return the maximum number of remote devices per {@link RangingSession}
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public int getMaxRemoteDevicesPerResponderSession() {
|
public int getMaxRemoteDevicesPerResponderSession() {
|
||||||
try {
|
try {
|
||||||
return mUwbAdapter.getMaxRemoteDevicesPerResponderSession();
|
return mUwbAdapter.getMaxRemoteDevicesPerResponderSession();
|
||||||
@@ -396,6 +409,7 @@ public final class UwbManager {
|
|||||||
* {@link RangingSession.Callback#onOpened(RangingSession)}.
|
* {@link RangingSession.Callback#onOpened(RangingSession)}.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@RequiresPermission(Manifest.permission.UWB_PRIVILEGED)
|
||||||
public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
|
public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
|
||||||
@NonNull @CallbackExecutor Executor executor,
|
@NonNull @CallbackExecutor Executor executor,
|
||||||
@NonNull RangingSession.Callback callbacks) {
|
@NonNull RangingSession.Callback callbacks) {
|
||||||
|
|||||||
@@ -1922,6 +1922,12 @@
|
|||||||
<permission android:name="android.permission.ENABLE_TEST_HARNESS_MODE"
|
<permission android:name="android.permission.ENABLE_TEST_HARNESS_MODE"
|
||||||
android:protectionLevel="signature" />
|
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 -->
|
<!-- Permissions for accessing accounts -->
|
||||||
<!-- ================================== -->
|
<!-- ================================== -->
|
||||||
|
|||||||
Reference in New Issue
Block a user