diff options
-rw-r--r-- | AconfigFlags.bp | 8 | ||||
-rw-r--r-- | core/api/system-current.txt | 1 | ||||
-rw-r--r-- | core/java/android/content/Context.java | 12 | ||||
-rw-r--r-- | services/java/com/android/server/SystemServer.java | 15 |
4 files changed, 36 insertions, 0 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 7706de350b78..d3f1d5d3f58b 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -89,6 +89,7 @@ aconfig_declarations_group { "com.android.media.flags.performance-aconfig-java", "com.android.media.flags.projection-aconfig-java", "com.android.net.thread.platform.flags-aconfig-java", + "com.android.ranging.flags.ranging-aconfig-java", "com.android.server.contextualsearch.flags-java", "com.android.server.flags.services-aconfig-java", "com.android.text.flags-aconfig-java", @@ -1462,6 +1463,13 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } +// Ranging +java_aconfig_library { + name: "com.android.ranging.flags.ranging-aconfig-java", + aconfig_declarations: "ranging_aconfig_flags", + defaults: ["framework-minus-apex-aconfig-java-defaults"], +} + // System Server aconfig_declarations { name: "android.systemserver.flags-aconfig", diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 0fd5da738da7..1019ce80c34d 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -3802,6 +3802,7 @@ package android.content { field @FlaggedApi("android.app.ondeviceintelligence.flags.enable_on_device_intelligence") public static final String ON_DEVICE_INTELLIGENCE_SERVICE = "on_device_intelligence"; field public static final String PERMISSION_CONTROLLER_SERVICE = "permission_controller"; field public static final String PERMISSION_SERVICE = "permission"; + field @FlaggedApi("com.android.ranging.flags.ranging_stack_enabled") public static final String RANGING_SERVICE = "ranging"; field public static final String REBOOT_READINESS_SERVICE = "reboot_readiness"; field public static final String ROLLBACK_SERVICE = "rollback"; field public static final String SAFETY_CENTER_SERVICE = "safety_center"; diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 8365840b1efb..4050b8231f14 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4309,6 +4309,7 @@ public abstract class Context { SECURITY_STATE_SERVICE, //@hide: ECM_ENHANCED_CONFIRMATION_SERVICE, CONTACT_KEYS_SERVICE, + RANGING_SERVICE, }) @Retention(RetentionPolicy.SOURCE) @@ -6376,6 +6377,17 @@ public abstract class Context { /** * Use with {@link #getSystemService(String)} to retrieve a + * {@link android.ranging.RangingManager}. + * + * @see #getSystemService(String) + * @hide + */ + @FlaggedApi(com.android.ranging.flags.Flags.FLAG_RANGING_STACK_ENABLED) + @SystemApi + public static final String RANGING_SERVICE = "ranging"; + + /** + * Use with {@link #getSystemService(String)} to retrieve a * {@link android.app.DreamManager} for controlling Dream states. * * @see #getSystemService(String) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index cdca948f91ac..b676fa2455b1 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -428,6 +428,10 @@ public final class SystemServer implements Dumpable { private static final String PROFILING_SERVICE_JAR_PATH = "/apex/com.android.profiling/javalib/service-profiling.jar"; + private static final String RANGING_APEX_SERVICE_JAR_PATH = + "/apex/com.android.uwb/javalib/service-ranging.jar"; + private static final String RANGING_SERVICE_CLASS = "com.android.server.ranging.RangingService"; + private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector"; private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst"; @@ -2961,6 +2965,17 @@ public final class SystemServer implements Dumpable { t.traceEnd(); } + if (com.android.ranging.flags.Flags.rangingStackEnabled()) { + if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_UWB) + || context.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_WIFI_RTT)) { + t.traceBegin("RangingService"); + mSystemServiceManager.startServiceFromJar(RANGING_SERVICE_CLASS, + RANGING_APEX_SERVICE_JAR_PATH); + t.traceEnd(); + } + } + t.traceBegin("StartBootPhaseDeviceSpecificServicesReady"); mSystemServiceManager.startBootPhase(t, SystemService.PHASE_DEVICE_SPECIFIC_SERVICES_READY); t.traceEnd(); |