Merge "Expose ADAS APIs"
This commit is contained in:
committed by
Android (Google) Code Review
commit
1f862b0ac0
@@ -4933,6 +4933,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);
|
||||
@@ -4943,6 +4944,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);
|
||||
}
|
||||
@@ -4962,6 +4964,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);
|
||||
@@ -4973,11 +4976,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 {
|
||||
@@ -4993,6 +4999,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();
|
||||
@@ -5018,6 +5025,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);
|
||||
|
||||
@@ -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 {
|
||||
*
|
||||
* <p>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 {
|
||||
*
|
||||
* <p>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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user