diff options
author | Laurent Tu <laurentt@google.com> | 2012-10-30 14:54:02 -0700 |
---|---|---|
committer | Laurent Tu <laurentt@google.com> | 2012-11-01 15:22:22 -0700 |
commit | 7ab7f538924371a9dd4be7a27a6ae3b4c04b301c (patch) | |
tree | b78dc6cc0bdd8c32726a3e28c6df6e24cffaf06b /location/lib/java/com | |
parent | 465c37533ac1fb76d76b062452ae19afb84aab0a (diff) | |
download | frameworks_base-7ab7f538924371a9dd4be7a27a6ae3b4c04b301c.zip frameworks_base-7ab7f538924371a9dd4be7a27a6ae3b4c04b301c.tar.gz frameworks_base-7ab7f538924371a9dd4be7a27a6ae3b4c04b301c.tar.bz2 |
Hide new location APIs and undeprecate old ones
Hide all new location APIs related to LocationRequest/Geofence and
undeprecate all deprecated APIs consequently to the LocationRequest and
Geofence introduction. Also introduce LocationRequestUnbundled for
LocationProviders to use.
Change-Id: I5b116c7d342041f45b341c88a4b6813571118018
Diffstat (limited to 'location/lib/java/com')
-rw-r--r-- | location/lib/java/com/android/location/provider/LocationRequestUnbundled.java | 128 | ||||
-rw-r--r-- | location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java | 10 |
2 files changed, 136 insertions, 2 deletions
diff --git a/location/lib/java/com/android/location/provider/LocationRequestUnbundled.java b/location/lib/java/com/android/location/provider/LocationRequestUnbundled.java new file mode 100644 index 0000000..41fd769 --- /dev/null +++ b/location/lib/java/com/android/location/provider/LocationRequestUnbundled.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.location.provider; + +import android.location.LocationRequest; + +/** + * This class is an interface to LocationRequests for unbundled applications. + * + * <p>IMPORTANT: This class is effectively a public API for unbundled + * applications, and must remain API stable. See README.txt in the root + * of this package for more information. + */ +public final class LocationRequestUnbundled { + /** + * Returned by {@link #getQuality} when requesting the most accurate locations available. + * + * <p>This may be up to 1 meter accuracy, although this is implementation dependent. + */ + public static final int ACCURACY_FINE = LocationRequest.ACCURACY_FINE; + + /** + * Returned by {@link #getQuality} when requesting "block" level accuracy. + * + * <p>Block level accuracy is considered to be about 100 meter accuracy, + * although this is implementation dependent. Using a coarse accuracy + * such as this often consumes less power. + */ + public static final int ACCURACY_BLOCK = LocationRequest.ACCURACY_BLOCK; + + /** + * Returned by {@link #getQuality} when requesting "city" level accuracy. + * + * <p>City level accuracy is considered to be about 10km accuracy, + * although this is implementation dependent. Using a coarse accuracy + * such as this often consumes less power. + */ + public static final int ACCURACY_CITY = LocationRequest.ACCURACY_CITY; + + /** + * Returned by {@link #getQuality} when requiring no direct power impact (passive locations). + * + * <p>This location request will not trigger any active location requests, + * but will receive locations triggered by other applications. Your application + * will not receive any direct power blame for location work. + */ + public static final int POWER_NONE = LocationRequest.POWER_NONE; + + /** + * Returned by {@link #getQuality} when requesting low power impact. + * + * <p>This location request will avoid high power location work where + * possible. + */ + public static final int POWER_LOW = LocationRequest.POWER_LOW; + + /** + * Returned by {@link #getQuality} when allowing high power consumption for location. + * + * <p>This location request will allow high power location work. + */ + public static final int POWER_HIGH = LocationRequest.POWER_HIGH; + + private final LocationRequest delegate; + + LocationRequestUnbundled(LocationRequest delegate) { + this.delegate = delegate; + } + + /** + * Get the desired interval of this request, in milliseconds. + * + * @return desired interval in milliseconds, inexact + */ + public long getInterval() { + return delegate.getInterval(); + } + + /** + * Get the fastest interval of this request, in milliseconds. + * + * <p>The system will never provide location updates faster + * than the minimum of {@link #getFastestInterval} and + * {@link #getInterval}. + * + * @return fastest interval in milliseconds, exact + */ + public long getFastestInterval() { + return delegate.getFastestInterval(); + } + + /** + * Get the quality of the request. + * + * @return an accuracy or power constant + */ + public int getQuality() { + return delegate.getQuality(); + } + + /** + * Get the minimum distance between location updates, in meters. + * + * @return minimum distance between location updates in meters + */ + public float getSmallestDisplacement() { + return delegate.getSmallestDisplacement(); + } + + @Override + public String toString() { + return delegate.toString(); + } +} diff --git a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java index 3605381..ad3d1df 100644 --- a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java +++ b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java @@ -16,6 +16,7 @@ package com.android.location.provider; +import java.util.ArrayList; import java.util.List; import android.location.LocationRequest; @@ -47,8 +48,13 @@ public final class ProviderRequestUnbundled { /** * Never null. */ - public List<LocationRequest> getLocationRequests() { - return mRequest.locationRequests; + public List<LocationRequestUnbundled> getLocationRequests() { + List<LocationRequestUnbundled> result = new ArrayList<LocationRequestUnbundled>( + mRequest.locationRequests.size()); + for (LocationRequest r : mRequest.locationRequests) { + result.add(new LocationRequestUnbundled(r)); + } + return result; } @Override |