1ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu/* 2ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Copyright (C) 2012 The Android Open Source Project 3ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 4ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Licensed under the Apache License, Version 2.0 (the "License"); 5ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * you may not use this file except in compliance with the License. 6ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * You may obtain a copy of the License at 7ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 8ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * http://www.apache.org/licenses/LICENSE-2.0 9ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 10ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Unless required by applicable law or agreed to in writing, software 11ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * distributed under the License is distributed on an "AS IS" BASIS, 12ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * See the License for the specific language governing permissions and 14ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * limitations under the License. 15ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 16ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 17ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tupackage com.android.location.provider; 18ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 19ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tuimport android.location.LocationRequest; 20ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 21ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu/** 22ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * This class is an interface to LocationRequests for unbundled applications. 23ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 24ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>IMPORTANT: This class is effectively a public API for unbundled 25ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * applications, and must remain API stable. See README.txt in the root 26ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * of this package for more information. 27ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 28ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tupublic final class LocationRequestUnbundled { 29ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 30ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when requesting the most accurate locations available. 31ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 32ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>This may be up to 1 meter accuracy, although this is implementation dependent. 33ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 34ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int ACCURACY_FINE = LocationRequest.ACCURACY_FINE; 35ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 36ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 37ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when requesting "block" level accuracy. 38ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 39ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>Block level accuracy is considered to be about 100 meter accuracy, 40ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * although this is implementation dependent. Using a coarse accuracy 41ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * such as this often consumes less power. 42ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 43ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int ACCURACY_BLOCK = LocationRequest.ACCURACY_BLOCK; 44ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 45ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 46ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when requesting "city" level accuracy. 47ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 48ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>City level accuracy is considered to be about 10km accuracy, 49ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * although this is implementation dependent. Using a coarse accuracy 50ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * such as this often consumes less power. 51ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 52ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int ACCURACY_CITY = LocationRequest.ACCURACY_CITY; 53ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 54ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 55ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when requiring no direct power impact (passive locations). 56ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 57ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>This location request will not trigger any active location requests, 58ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * but will receive locations triggered by other applications. Your application 59ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * will not receive any direct power blame for location work. 60ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 61ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int POWER_NONE = LocationRequest.POWER_NONE; 62ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 63ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 64ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when requesting low power impact. 65ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 66ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>This location request will avoid high power location work where 67ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * possible. 68ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 69ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int POWER_LOW = LocationRequest.POWER_LOW; 70ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 71ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 72ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Returned by {@link #getQuality} when allowing high power consumption for location. 73ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 74ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>This location request will allow high power location work. 75ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 76ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public static final int POWER_HIGH = LocationRequest.POWER_HIGH; 77ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 78ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu private final LocationRequest delegate; 79ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 80ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu LocationRequestUnbundled(LocationRequest delegate) { 81ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu this.delegate = delegate; 82ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 83ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 84ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 85ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Get the desired interval of this request, in milliseconds. 86ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 87ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * @return desired interval in milliseconds, inexact 88ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 89ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public long getInterval() { 90ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu return delegate.getInterval(); 91ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 92ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 93ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 94ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Get the fastest interval of this request, in milliseconds. 95ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 96ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * <p>The system will never provide location updates faster 97ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * than the minimum of {@link #getFastestInterval} and 98ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * {@link #getInterval}. 99ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 100ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * @return fastest interval in milliseconds, exact 101ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 102ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public long getFastestInterval() { 103ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu return delegate.getFastestInterval(); 104ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 105ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 106ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 107ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Get the quality of the request. 108ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 109ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * @return an accuracy or power constant 110ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 111ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public int getQuality() { 112ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu return delegate.getQuality(); 113ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 114ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 115ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu /** 116ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * Get the minimum distance between location updates, in meters. 117ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * 118ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu * @return minimum distance between location updates in meters 119ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu */ 120ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public float getSmallestDisplacement() { 121ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu return delegate.getSmallestDisplacement(); 122ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 123ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu 124ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu @Override 125ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu public String toString() { 126ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu return delegate.toString(); 127ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu } 128ccb4c318aa5150ba49b7e7878d20b4787d6bf723Laurent Tu} 129