LocationRequestUnbundled.java revision ccb4c318aa5150ba49b7e7878d20b4787d6bf723
15778822d86b0337407514b9372562b86edfa91cdAndreas Huber/*
25778822d86b0337407514b9372562b86edfa91cdAndreas Huber * Copyright (C) 2012 The Android Open Source Project
35778822d86b0337407514b9372562b86edfa91cdAndreas Huber *
45778822d86b0337407514b9372562b86edfa91cdAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
55778822d86b0337407514b9372562b86edfa91cdAndreas Huber * you may not use this file except in compliance with the License.
65778822d86b0337407514b9372562b86edfa91cdAndreas Huber * You may obtain a copy of the License at
75778822d86b0337407514b9372562b86edfa91cdAndreas Huber *
85778822d86b0337407514b9372562b86edfa91cdAndreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
95778822d86b0337407514b9372562b86edfa91cdAndreas Huber *
105778822d86b0337407514b9372562b86edfa91cdAndreas Huber * Unless required by applicable law or agreed to in writing, software
115778822d86b0337407514b9372562b86edfa91cdAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
125778822d86b0337407514b9372562b86edfa91cdAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135778822d86b0337407514b9372562b86edfa91cdAndreas Huber * See the License for the specific language governing permissions and
145778822d86b0337407514b9372562b86edfa91cdAndreas Huber * limitations under the License.
155778822d86b0337407514b9372562b86edfa91cdAndreas Huber */
165778822d86b0337407514b9372562b86edfa91cdAndreas Huber
175778822d86b0337407514b9372562b86edfa91cdAndreas Huberpackage com.android.location.provider;
185778822d86b0337407514b9372562b86edfa91cdAndreas Huber
195778822d86b0337407514b9372562b86edfa91cdAndreas Huberimport android.location.LocationRequest;
205778822d86b0337407514b9372562b86edfa91cdAndreas Huber
218ba01021b573889802e67e029225a96f0dfa471aAndy McFadden/**
224b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber * This class is an interface to LocationRequests for unbundled applications.
235778822d86b0337407514b9372562b86edfa91cdAndreas Huber *
245778822d86b0337407514b9372562b86edfa91cdAndreas Huber * <p>IMPORTANT: This class is effectively a public API for unbundled
255778822d86b0337407514b9372562b86edfa91cdAndreas Huber * applications, and must remain API stable. See README.txt in the root
265778822d86b0337407514b9372562b86edfa91cdAndreas Huber * of this package for more information.
275778822d86b0337407514b9372562b86edfa91cdAndreas Huber */
285778822d86b0337407514b9372562b86edfa91cdAndreas Huberpublic final class LocationRequestUnbundled {
295778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
305778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * Returned by {@link #getQuality} when requesting the most accurate locations available.
315b8987e7de9d04b09153f329c680d2316cdb44ecAndreas Huber     *
32ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6Andreas Huber     * <p>This may be up to 1 meter accuracy, although this is implementation dependent.
335778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
341a2952aee048ca7b1765e2bc09ebe9aeddaeafa3Mathias Agopian    public static final int ACCURACY_FINE = LocationRequest.ACCURACY_FINE;
355778822d86b0337407514b9372562b86edfa91cdAndreas Huber
365778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
375778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * Returned by {@link #getQuality} when requesting "block" level accuracy.
385778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
395778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>Block level accuracy is considered to be about 100 meter accuracy,
405778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * although this is implementation dependent. Using a coarse accuracy
415778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * such as this often consumes less power.
425778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
435778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public static final int ACCURACY_BLOCK = LocationRequest.ACCURACY_BLOCK;
445778822d86b0337407514b9372562b86edfa91cdAndreas Huber
455778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
465778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * Returned by {@link #getQuality} when requesting "city" level accuracy.
475778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
485778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>City level accuracy is considered to be about 10km accuracy,
495778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * although this is implementation dependent. Using a coarse accuracy
505778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * such as this often consumes less power.
515778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
525778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public static final int ACCURACY_CITY = LocationRequest.ACCURACY_CITY;
535778822d86b0337407514b9372562b86edfa91cdAndreas Huber
545778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
551a2952aee048ca7b1765e2bc09ebe9aeddaeafa3Mathias Agopian     * Returned by {@link #getQuality} when requiring no direct power impact (passive locations).
561bd139a2a68690e80398b70b27ca59550fea0e65Andreas Huber     *
575778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>This location request will not trigger any active location requests,
585778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * but will receive locations triggered by other applications. Your application
597cd58537932ef6f481f68be0b9c597a89cebdfecAndy McFadden     * will not receive any direct power blame for location work.
607cd58537932ef6f481f68be0b9c597a89cebdfecAndy McFadden     */
615778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public static final int POWER_NONE = LocationRequest.POWER_NONE;
62c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber
63c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber    /**
64c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber     * Returned by {@link #getQuality} when requesting low power impact.
655778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
665778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>This location request will avoid high power location work where
67c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber     * possible.
68c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber     */
69c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber    public static final int POWER_LOW = LocationRequest.POWER_LOW;
70c95c2ddcdfc974f42408a377fbe2de51b94a8c94Andreas Huber
715778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
725778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * Returned by {@link #getQuality} when allowing high power consumption for location.
735778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
745778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>This location request will allow high power location work.
755778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
765778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public static final int POWER_HIGH = LocationRequest.POWER_HIGH;
775778822d86b0337407514b9372562b86edfa91cdAndreas Huber
785b8987e7de9d04b09153f329c680d2316cdb44ecAndreas Huber    private final LocationRequest delegate;
795b8987e7de9d04b09153f329c680d2316cdb44ecAndreas Huber
805778822d86b0337407514b9372562b86edfa91cdAndreas Huber    LocationRequestUnbundled(LocationRequest delegate) {
814b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber        this.delegate = delegate;
824b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber    }
834b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber
844b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber    /**
854b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber     * Get the desired interval of this request, in milliseconds.
864b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber     *
874b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber     * @return desired interval in milliseconds, inexact
884b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber     */
894b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber    public long getInterval() {
905b8987e7de9d04b09153f329c680d2316cdb44ecAndreas Huber        return delegate.getInterval();
915b8987e7de9d04b09153f329c680d2316cdb44ecAndreas Huber    }
924b75a9c8b93a90749bc5d22912ad0d96c12f4ecfAndreas Huber
935778822d86b0337407514b9372562b86edfa91cdAndreas Huber    /**
945778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * Get the fastest interval of this request, in milliseconds.
955778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
965778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * <p>The system will never provide location updates faster
975778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * than the minimum of {@link #getFastestInterval} and
985778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * {@link #getInterval}.
995778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
1005778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * @return fastest interval in milliseconds, exact
1015778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
1025778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public long getFastestInterval() {
1035778822d86b0337407514b9372562b86edfa91cdAndreas Huber        return delegate.getFastestInterval();
1045778822d86b0337407514b9372562b86edfa91cdAndreas Huber    }
1055778822d86b0337407514b9372562b86edfa91cdAndreas Huber
1067cd58537932ef6f481f68be0b9c597a89cebdfecAndy McFadden    /**
1077cd58537932ef6f481f68be0b9c597a89cebdfecAndy McFadden     * Get the quality of the request.
1085778822d86b0337407514b9372562b86edfa91cdAndreas Huber     *
1095778822d86b0337407514b9372562b86edfa91cdAndreas Huber     * @return an accuracy or power constant
1105778822d86b0337407514b9372562b86edfa91cdAndreas Huber     */
1115778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public int getQuality() {
1125778822d86b0337407514b9372562b86edfa91cdAndreas Huber        return delegate.getQuality();
113496238cc7551d414067dcbbb4fe3bd801f205f95Andreas Huber    }
114496238cc7551d414067dcbbb4fe3bd801f205f95Andreas Huber
115575a5361fc970476cd7979638ee3ac00cc6e5024Andreas Huber    /**
116575a5361fc970476cd7979638ee3ac00cc6e5024Andreas Huber     * Get the minimum distance between location updates, in meters.
117575a5361fc970476cd7979638ee3ac00cc6e5024Andreas Huber     *
118575a5361fc970476cd7979638ee3ac00cc6e5024Andreas Huber     * @return minimum distance between location updates in meters
119575a5361fc970476cd7979638ee3ac00cc6e5024Andreas Huber     */
120717fd3d4328abf524978ce9c125ab8ae8d6bffadMartin Storsjo    public float getSmallestDisplacement() {
121717fd3d4328abf524978ce9c125ab8ae8d6bffadMartin Storsjo        return delegate.getSmallestDisplacement();
122a2eb22c1de262aa3fa7c356537ac2fe165afdf3dAndreas Huber    }
123a2eb22c1de262aa3fa7c356537ac2fe165afdf3dAndreas Huber
1245778822d86b0337407514b9372562b86edfa91cdAndreas Huber    @Override
1255778822d86b0337407514b9372562b86edfa91cdAndreas Huber    public String toString() {
1265778822d86b0337407514b9372562b86edfa91cdAndreas Huber      return delegate.toString();
1275778822d86b0337407514b9372562b86edfa91cdAndreas Huber    }
1285778822d86b0337407514b9372562b86edfa91cdAndreas Huber}
1295778822d86b0337407514b9372562b86edfa91cdAndreas Huber