diff --git a/core/api/current.txt b/core/api/current.txt
index 39d0b8c6bf1a6..1299ce59253d5 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -174,6 +174,7 @@ package android {
field public static final String USE_FULL_SCREEN_INTENT = "android.permission.USE_FULL_SCREEN_INTENT";
field public static final String USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER = "android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER";
field public static final String USE_SIP = "android.permission.USE_SIP";
+ field public static final String UWB_RANGING = "android.permission.UWB_RANGING";
field public static final String VIBRATE = "android.permission.VIBRATE";
field public static final String WAKE_LOCK = "android.permission.WAKE_LOCK";
field public static final String WRITE_APN_SETTINGS = "android.permission.WRITE_APN_SETTINGS";
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 6ce0b22836039..5a35bbed3fa4f 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -1222,9 +1222,12 @@ public class AppOpsManager {
*/
public static final int OP_MANAGE_MEDIA = AppProtoEnums.APP_OP_MANAGE_MEDIA;
+ /** @hide */
+ public static final int OP_UWB_RANGING = AppProtoEnums.APP_OP_UWB_RANGING;
+
/** @hide */
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
- public static final int _NUM_OP = 112;
+ public static final int _NUM_OP = 113;
/** Access to coarse location information. */
public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -1637,6 +1640,8 @@ public class AppOpsManager {
* @hide
*/
public static final String OPSTR_MANAGE_MEDIA = "android:manage_media";
+ /** @hide */
+ public static final String OPSTR_UWB_RANGING = "android:uwb_ranging";
/** {@link #sAppOpsToNote} not initialized yet for this op */
private static final byte SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED = 0;
@@ -1706,6 +1711,7 @@ public class AppOpsManager {
// Nearby devices
OP_BLUETOOTH_SCAN,
OP_BLUETOOTH_CONNECT,
+ OP_UWB_RANGING,
// APPOP PERMISSIONS
OP_ACCESS_NOTIFICATIONS,
@@ -1846,6 +1852,7 @@ public class AppOpsManager {
OP_COARSE_LOCATION, // OP_COARSE_LOCATION_SOURCE
OP_MANAGE_MEDIA, // MANAGE_MEDIA
OP_BLUETOOTH_CONNECT, // OP_BLUETOOTH_CONNECT
+ OP_UWB_RANGING, // OP_UWB_RANGING
};
/**
@@ -1964,6 +1971,7 @@ public class AppOpsManager {
OPSTR_COARSE_LOCATION_SOURCE,
OPSTR_MANAGE_MEDIA,
OPSTR_BLUETOOTH_CONNECT,
+ OPSTR_UWB_RANGING,
};
/**
@@ -2083,6 +2091,7 @@ public class AppOpsManager {
"COARSE_LOCATION_SOURCE",
"MANAGE_MEDIA",
"BLUETOOTH_CONNECT",
+ "UWB_RANGING"
};
/**
@@ -2203,6 +2212,7 @@ public class AppOpsManager {
null, // no permission for OP_ACCESS_COARSE_LOCATION_SOURCE,
Manifest.permission.MANAGE_MEDIA,
Manifest.permission.BLUETOOTH_CONNECT,
+ Manifest.permission.UWB_RANGING,
};
/**
@@ -2323,6 +2333,7 @@ public class AppOpsManager {
null, // ACCESS_COARSE_LOCATION_SOURCE
null, // MANAGE_MEDIA
null, // BLUETOOTH_CONNECT
+ null, // UWB_RANGING
};
/**
@@ -2442,6 +2453,7 @@ public class AppOpsManager {
null, // ACCESS_COARSE_LOCATION_SOURCE
null, // MANAGE_MEDIA
null, // BLUETOOTH_CONNECT
+ null, // UWB_RANGING
};
/**
@@ -2560,6 +2572,7 @@ public class AppOpsManager {
AppOpsManager.MODE_ALLOWED, // ACCESS_COARSE_LOCATION_SOURCE
AppOpsManager.MODE_DEFAULT, // MANAGE_MEDIA
AppOpsManager.MODE_ALLOWED, // BLUETOOTH_CONNECT
+ AppOpsManager.MODE_ALLOWED, // UWB_RANGING
};
/**
@@ -2682,6 +2695,7 @@ public class AppOpsManager {
false, // ACCESS_COARSE_LOCATION_SOURCE
false, // MANAGE_MEDIA
false, // BLUETOOTH_CONNECT
+ false, // UWB_RANGING
};
/**
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index c144451c1b94f..c67bfedb91749 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1954,6 +1954,14 @@
android:label="@string/permlab_bluetooth_connect"
android:protectionLevel="dangerous" />
+
+
+
Allows the app to connect to paired Bluetooth devices
+
+ range to devices using ultra-wideband
+
+ Allows the app to range to devices using ultra-wideband
+
Preferred NFC Payment Service Information