diff --git a/core/api/system-current.txt b/core/api/system-current.txt index a3eac2e33bd09..78d6f7921d5e3 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -4931,6 +4931,7 @@ package android.location { public final class LastLocationRequest implements android.os.Parcelable { method public int describeContents(); + method public boolean isAdasGnssBypass(); method public boolean isHiddenFromAppOps(); method public boolean isLocationSettingsIgnored(); method public void writeToParcel(@NonNull android.os.Parcel, int); @@ -4941,6 +4942,7 @@ package android.location { ctor public LastLocationRequest.Builder(); ctor public LastLocationRequest.Builder(@NonNull android.location.LastLocationRequest); method @NonNull public android.location.LastLocationRequest build(); + method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LastLocationRequest.Builder setAdasGnssBypass(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LastLocationRequest.Builder setHiddenFromAppOps(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LastLocationRequest.Builder setLocationSettingsIgnored(boolean); } @@ -4960,6 +4962,7 @@ package android.location { method @Deprecated public int getGnssBatchSize(); method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.location.Location getLastKnownLocation(@NonNull String, @NonNull android.location.LastLocationRequest); method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections); + method public boolean isAdasGnssLocationEnabled(); method public boolean isExtraLocationControllerPackageEnabled(); method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle); method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle); @@ -4971,11 +4974,14 @@ package android.location { method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent); + method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAdasGnssLocationEnabled(boolean); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackage(@Nullable String); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackageEnabled(boolean); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle); method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); + field public static final String ACTION_ADAS_GNSS_ENABLED_CHANGED = "android.location.action.ADAS_GNSS_ENABLED_CHANGED"; + field public static final String EXTRA_ADAS_GNSS_ENABLED = "android.location.extra.ADAS_GNSS_ENABLED"; } public final class LocationRequest implements android.os.Parcelable { @@ -4991,6 +4997,7 @@ package android.location { method @Deprecated @NonNull public String getProvider(); method @Deprecated public float getSmallestDisplacement(); method @NonNull public android.os.WorkSource getWorkSource(); + method public boolean isAdasGnssBypass(); method public boolean isHiddenFromAppOps(); method public boolean isLocationSettingsIgnored(); method public boolean isLowPower(); @@ -5016,6 +5023,7 @@ package android.location { } public static final class LocationRequest.Builder { + method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest.Builder setAdasGnssBypass(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LocationRequest.Builder setHiddenFromAppOps(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest.Builder setLocationSettingsIgnored(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.location.LocationRequest.Builder setLowPower(boolean); diff --git a/location/java/android/location/LastLocationRequest.java b/location/java/android/location/LastLocationRequest.java index 0970c1c76a36d..73c5c826584f6 100644 --- a/location/java/android/location/LastLocationRequest.java +++ b/location/java/android/location/LastLocationRequest.java @@ -53,7 +53,9 @@ public final class LastLocationRequest implements Parcelable { * * @return true if this request should be ignored while updating app ops with location usage * + * @hide */ + @SystemApi public boolean isHiddenFromAppOps() { return mHiddenFromAppOps; } @@ -65,9 +67,10 @@ public final class LastLocationRequest implements Parcelable { * Driving Assistance Systems) application. * * @return true if all limiting factors will be ignored to satisfy GNSS request + * * @hide */ - // TODO: make this system api + @SystemApi public boolean isAdasGnssBypass() { return mAdasGnssBypass; } @@ -78,7 +81,10 @@ public final class LastLocationRequest implements Parcelable { * possible limiting factors will be ignored in order to satisfy this last location request. * * @return true if all limiting factors will be ignored to satisfy this request + * + * @hide */ + @SystemApi public boolean isLocationSettingsIgnored() { return mLocationSettingsIgnored; } @@ -192,7 +198,10 @@ public final class LastLocationRequest implements Parcelable { * *
Permissions enforcement occurs when resulting last location request is actually used, * not when this method is invoked. + * + * @hide */ + @SystemApi @RequiresPermission(Manifest.permission.UPDATE_APP_OPS_STATS) public @NonNull Builder setHiddenFromAppOps(boolean hiddenFromAppOps) { mHiddenFromAppOps = hiddenFromAppOps; @@ -211,7 +220,7 @@ public final class LastLocationRequest implements Parcelable { * * @hide */ - // TODO: make this system api + @SystemApi @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS) public @NonNull LastLocationRequest.Builder setAdasGnssBypass(boolean adasGnssBypass) { mAdasGnssBypass = adasGnssBypass; @@ -226,7 +235,10 @@ public final class LastLocationRequest implements Parcelable { * *
Permissions enforcement occurs when resulting last location request is actually used, * not when this method is invoked. + * + * @hide */ + @SystemApi @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS) public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) { mLocationSettingsIgnored = locationSettingsIgnored; diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index 526b84e85e383..26abb811dd36e 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -325,7 +325,7 @@ public class LocationManager { * * @hide */ - // TODO: @SystemApi + @SystemApi @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_ADAS_GNSS_ENABLED_CHANGED = "android.location.action.ADAS_GNSS_ENABLED_CHANGED"; @@ -338,7 +338,7 @@ public class LocationManager { * * @hide */ - // TODO: @SystemApi + @SystemApi public static final String EXTRA_ADAS_GNSS_ENABLED = "android.location.extra.ADAS_GNSS_ENABLED"; /** @@ -656,7 +656,7 @@ public class LocationManager { * * @hide */ - //TODO: @SystemApi + @SystemApi public boolean isAdasGnssLocationEnabled() { try { return mService.isAdasGnssLocationEnabledForUser(mContext.getUser().getIdentifier()); @@ -673,7 +673,7 @@ public class LocationManager { * * @hide */ - // TODO: @SystemApi + @SystemApi @RequiresPermission(WRITE_SECURE_SETTINGS) public void setAdasGnssLocationEnabled(boolean enabled) { try { diff --git a/location/java/android/location/LocationRequest.java b/location/java/android/location/LocationRequest.java index b48e59676ac19..d6e203c39870d 100644 --- a/location/java/android/location/LocationRequest.java +++ b/location/java/android/location/LocationRequest.java @@ -660,7 +660,7 @@ public final class LocationRequest implements Parcelable { * * @hide */ - // TODO: @SystemApi + @SystemApi public boolean isAdasGnssBypass() { return mAdasGnssBypass; } @@ -1139,7 +1139,7 @@ public final class LocationRequest implements Parcelable { * * @hide */ - // TODO: @SystemApi + @SystemApi @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS) public @NonNull Builder setAdasGnssBypass(boolean adasGnssBypass) { mAdasGnssBypass = adasGnssBypass; diff --git a/services/core/java/com/android/server/location/LocationManagerService.java b/services/core/java/com/android/server/location/LocationManagerService.java index e6210b2a8cc96..7b5a635d6c87e 100644 --- a/services/core/java/com/android/server/location/LocationManagerService.java +++ b/services/core/java/com/android/server/location/LocationManagerService.java @@ -771,14 +771,6 @@ public class LocationManagerService extends ILocationManager.Stub implements // sanitize request LocationRequest.Builder sanitized = new LocationRequest.Builder(request); - if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) - && GPS_PROVIDER.equals(provider) - && ArrayUtils.contains(mContext.getResources().getStringArray( - com.android.internal.R.array.config_locationDriverAssistancePackageNames), - identity.getPackageName())) { - sanitized.setAdasGnssBypass(true); - } - if (!CompatChanges.isChangeEnabled(LOW_POWER_EXCEPTIONS, Binder.getCallingUid())) { if (mContext.checkCallingPermission(permission.LOCATION_HARDWARE) != PERMISSION_GRANTED) { @@ -914,14 +906,6 @@ public class LocationManagerService extends ILocationManager.Stub implements // sanitize request LastLocationRequest.Builder sanitized = new LastLocationRequest.Builder(request); - if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) - && GPS_PROVIDER.equals(provider) - && ArrayUtils.contains(mContext.getResources().getStringArray( - com.android.internal.R.array.config_locationDriverAssistancePackageNames), - identity.getPackageName())) { - sanitized.setAdasGnssBypass(true); - } - request = sanitized.build(); // validate request