diff options
| -rw-r--r-- | api/system-current.txt | 8 | ||||
| -rw-r--r-- | api/system-removed.txt | 2 | ||||
| -rw-r--r-- | location/java/android/location/ILocationManager.aidl | 8 | ||||
| -rw-r--r-- | location/java/android/location/LocationManager.java | 50 | ||||
| -rw-r--r-- | services/core/java/com/android/server/LocationManagerService.java | 28 |
5 files changed, 67 insertions, 29 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index b47f57393967..8ebed80903cc 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3376,19 +3376,19 @@ package android.location { public class LocationManager { method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch(); + method @Nullable public String getExtraLocationControllerPackage(); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize(); method @Nullable public android.location.GnssCapabilities getGnssCapabilities(); - method @Nullable public String getLocationControllerExtraPackage(); method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections); - method public boolean isLocationControllerExtraPackageEnabled(); + method public boolean isExtraLocationControllerPackageEnabled(); method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle); method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle); method public boolean isProviderPackage(@NonNull String); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.app.PendingIntent); - method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackage(@NonNull String); - method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackageEnabled(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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback); diff --git a/api/system-removed.txt b/api/system-removed.txt index 9780d43624fa..162f212a787e 100644 --- a/api/system-removed.txt +++ b/api/system-removed.txt @@ -67,6 +67,8 @@ package android.location { method @Deprecated public boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener); method @Deprecated public void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener); method @Deprecated public void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackage(String); + method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackageEnabled(boolean); } } diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl index 93dc6fa9bf93..97bc4042b86f 100644 --- a/location/java/android/location/ILocationManager.aidl +++ b/location/java/android/location/ILocationManager.aidl @@ -93,10 +93,10 @@ interface ILocationManager ProviderProperties getProviderProperties(String provider); boolean isProviderPackage(String packageName); - void setLocationControllerExtraPackage(String packageName); - String getLocationControllerExtraPackage(); - void setLocationControllerExtraPackageEnabled(boolean enabled); - boolean isLocationControllerExtraPackageEnabled(); + void setExtraLocationControllerPackage(String packageName); + String getExtraLocationControllerPackage(); + void setExtraLocationControllerPackageEnabled(boolean enabled); + boolean isExtraLocationControllerPackageEnabled(); boolean isProviderEnabledForUser(String provider, int userId); boolean isLocationEnabledForUser(int userId); diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index edf304ca69cd..af60e3c67288 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -2328,9 +2328,27 @@ public class LocationManager { */ @SystemApi @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) - public void setLocationControllerExtraPackage(@NonNull String packageName) { + public void setExtraLocationControllerPackage(@Nullable String packageName) { try { - mService.setLocationControllerExtraPackage(packageName); + mService.setExtraLocationControllerPackage(packageName); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + + /** + * Set the extra location controller package for location services on the device. + * + * @removed + * @deprecated Use {@link #setExtraLocationControllerPackage} instead. + * @hide + */ + @Deprecated + @SystemApi + @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) + public void setLocationControllerExtraPackage(String packageName) { + try { + mService.setExtraLocationControllerPackage(packageName); } catch (RemoteException e) { e.rethrowFromSystemServer(); } @@ -2342,9 +2360,9 @@ public class LocationManager { * @hide */ @SystemApi - public @Nullable String getLocationControllerExtraPackage() { + public @Nullable String getExtraLocationControllerPackage() { try { - return mService.getLocationControllerExtraPackage(); + return mService.getExtraLocationControllerPackage(); } catch (RemoteException e) { e.rethrowFromSystemServer(); return null; @@ -2354,13 +2372,31 @@ public class LocationManager { /** * Set whether the extra location controller package is currently enabled on the device. * + * @removed + * @deprecated Use {@link #setExtraLocationControllerPackageEnabled} instead. * @hide */ @SystemApi + @Deprecated @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackageEnabled(boolean enabled) { try { - mService.setLocationControllerExtraPackageEnabled(enabled); + mService.setExtraLocationControllerPackageEnabled(enabled); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + + /** + * Set whether the extra location controller package is currently enabled on the device. + * + * @hide + */ + @SystemApi + @RequiresPermission(Manifest.permission.LOCATION_HARDWARE) + public void setExtraLocationControllerPackageEnabled(boolean enabled) { + try { + mService.setExtraLocationControllerPackageEnabled(enabled); } catch (RemoteException e) { e.rethrowFromSystemServer(); } @@ -2372,9 +2408,9 @@ public class LocationManager { * @hide */ @SystemApi - public boolean isLocationControllerExtraPackageEnabled() { + public boolean isExtraLocationControllerPackageEnabled() { try { - return mService.isLocationControllerExtraPackageEnabled(); + return mService.isExtraLocationControllerPackageEnabled(); } catch (RemoteException e) { e.rethrowFromSystemServer(); return false; diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index f0244c303360..2ded1e58bf2d 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -200,8 +200,8 @@ public class LocationManagerService extends ILocationManager.Stub { private GnssMeasurementCorrectionsProvider mGnssMeasurementCorrectionsProvider; private GnssNavigationMessageProvider mGnssNavigationMessageProvider; @GuardedBy("mLock") - private String mLocationControllerExtraPackage; - private boolean mLocationControllerExtraPackageEnabled; + private String mExtraLocationControllerPackage; + private boolean mExtraLocationControllerPackageEnabled; private IGpsGeofenceHardware mGpsGeofenceProxy; // list of currently active providers @@ -3045,35 +3045,35 @@ public class LocationManagerService extends ILocationManager.Stub { } @Override - public void setLocationControllerExtraPackage(String packageName) { + public void setExtraLocationControllerPackage(String packageName) { mContext.enforceCallingPermission(Manifest.permission.LOCATION_HARDWARE, Manifest.permission.LOCATION_HARDWARE + " permission required"); synchronized (mLock) { - mLocationControllerExtraPackage = packageName; + mExtraLocationControllerPackage = packageName; } } @Override - public String getLocationControllerExtraPackage() { + public String getExtraLocationControllerPackage() { synchronized (mLock) { - return mLocationControllerExtraPackage; + return mExtraLocationControllerPackage; } } @Override - public void setLocationControllerExtraPackageEnabled(boolean enabled) { + public void setExtraLocationControllerPackageEnabled(boolean enabled) { mContext.enforceCallingPermission(Manifest.permission.LOCATION_HARDWARE, Manifest.permission.LOCATION_HARDWARE + " permission required"); synchronized (mLock) { - mLocationControllerExtraPackageEnabled = enabled; + mExtraLocationControllerPackageEnabled = enabled; } } @Override - public boolean isLocationControllerExtraPackageEnabled() { + public boolean isExtraLocationControllerPackageEnabled() { synchronized (mLock) { - return mLocationControllerExtraPackageEnabled - && (mLocationControllerExtraPackage != null); + return mExtraLocationControllerPackageEnabled + && (mExtraLocationControllerPackage != null); } } @@ -3610,9 +3610,9 @@ public class LocationManagerService extends ILocationManager.Stub { pw.println(" mBlacklist=null"); } - if (mLocationControllerExtraPackage != null) { - pw.println(" Location controller extra package: " + mLocationControllerExtraPackage - + " enabled: " + mLocationControllerExtraPackageEnabled); + if (mExtraLocationControllerPackage != null) { + pw.println(" Location controller extra package: " + mExtraLocationControllerPackage + + " enabled: " + mExtraLocationControllerPackageEnabled); } if (!mBackgroundThrottlePackageWhitelist.isEmpty()) { |