19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.location; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Used for receiving notifications from the LocationManager when 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the location has changed. These methods are called if the 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * LocationListener has been registered with the location manager service 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * using the {@link LocationManager#requestLocationUpdates(String, long, float, LocationListener)} 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * method. 273aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * 283aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * <div class="special reference"> 293aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * <h3>Developer Guides</h3> 303aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * <p>For more information about identifying user location, read the 313aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * <a href="{@docRoot}guide/topics/location/obtaining-user-location.html">Obtaining User 323aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * Location</a> developer guide.</p> 333aef8e1d1b2f0b87d470bcccf37ba4ebb6560c45Joe Fernandez * </div> 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface LocationListener { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called when the location has changed. 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> There are no restrictions on the use of the supplied Location object. 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param location The new location, as a Location object. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void onLocationChanged(Location location); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called when the provider status changes. This method is called when 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a provider is unable to fetch a location or if the provider has recently 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * become available after a period of unavailability. 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param provider the name of the location provider associated with this 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * update. 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param status {@link LocationProvider#OUT_OF_SERVICE} if the 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * provider is out of service, and this is not expected to change in the 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * near future; {@link LocationProvider#TEMPORARILY_UNAVAILABLE} if 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the provider is temporarily unavailable but is expected to be available 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * shortly; and {@link LocationProvider#AVAILABLE} if the 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * provider is currently available. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param extras an optional Bundle which will contain provider specific 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * status variables. 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> A number of common key/value pairs for the extras Bundle are listed 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * below. Providers that use any of the keys on this list must 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * provide the corresponding value as described below. 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <ul> 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <li> satellites - the number of satellites used to derive the fix 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </ul> 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void onStatusChanged(String provider, int status, Bundle extras); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called when the provider is enabled by the user. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param provider the name of the location provider associated with this 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * update. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void onProviderEnabled(String provider); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called when the provider is disabled by the user. If requestLocationUpdates 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is called on an already disabled provider, this method is called 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * immediately. 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param provider the name of the location provider associated with this 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * update. 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void onProviderDisabled(String provider); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 90