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