19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007, 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.app.PendingIntent; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.Address; 2103ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwoodimport android.location.Criteria; 2234901409a404c8c66914c5a8ad0f29b1bcde0e78Mike Lockwoodimport android.location.GeocoderParams; 236fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pellyimport android.location.Geofence; 24ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaaimport android.location.IGpsMeasurementsListener; 254b3e3931270f8e406fc806bc7fa1c2788256687ddestradaaimport android.location.IGpsNavigationMessageListener; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.IGpsStatusListener; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.ILocationListener; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.Location; 296fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pellyimport android.location.LocationRequest; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 326fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pellyimport com.android.internal.location.ProviderProperties; 336fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private API for talking with the location service. 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 376fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly * @hide 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ILocationManager 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 416fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void requestLocationUpdates(in LocationRequest request, in ILocationListener listener, 426fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly in PendingIntent intent, String packageName); 436fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void removeUpdates(in ILocationListener listener, in PendingIntent intent, String packageName); 446fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 456fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void requestGeofence(in LocationRequest request, in Geofence geofence, 466fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly in PendingIntent intent, String packageName); 476fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void removeGeofence(in Geofence fence, in PendingIntent intent, String packageName); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 494035f5a7c191a68bc9a5912ce44c43c82e9e5dbfNick Pelly Location getLastLocation(in LocationRequest request, String packageName); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 51a06de0f29b58df9246779cc4bfd8f06f7205ddb6Dianne Hackborn boolean addGpsStatusListener(IGpsStatusListener listener, String packageName); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeGpsStatusListener(IGpsStatusListener listener); 5348f17518223a2917fd82195004fbb206cb9a05a3Mike Lockwood 54e15735a9e0c0b1448b68f2d6b3247404fc1df417Mike Lockwood boolean geocoderIsPresent(); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getFromLocation(double latitude, double longitude, int maxResults, 5634901409a404c8c66914c5a8ad0f29b1bcde0e78Mike Lockwood in GeocoderParams params, out List<Address> addrs); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getFromLocationName(String locationName, 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project double lowerLeftLatitude, double lowerLeftLongitude, 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project double upperRightLatitude, double upperRightLongitude, int maxResults, 6034901409a404c8c66914c5a8ad0f29b1bcde0e78Mike Lockwood in GeocoderParams params, out List<Address> addrs); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 626fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly boolean sendNiResponse(int notifId, int userResponse); 636fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 64ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaa boolean addGpsMeasurementsListener(in IGpsMeasurementsListener listener, in String packageName); 656568d709e78d6ccaf256b7d0e4a19cdfb26deafbdestradaa void removeGpsMeasurementsListener(in IGpsMeasurementsListener listener); 66ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaa 674b3e3931270f8e406fc806bc7fa1c2788256687ddestradaa boolean addGpsNavigationMessageListener( 684b3e3931270f8e406fc806bc7fa1c2788256687ddestradaa in IGpsNavigationMessageListener listener, 694b3e3931270f8e406fc806bc7fa1c2788256687ddestradaa in String packageName); 706568d709e78d6ccaf256b7d0e4a19cdfb26deafbdestradaa void removeGpsNavigationMessageListener(in IGpsNavigationMessageListener listener); 714b3e3931270f8e406fc806bc7fa1c2788256687ddestradaa 726fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // --- deprecated --- 736fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly List<String> getAllProviders(); 746fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly List<String> getProviders(in Criteria criteria, boolean enabledOnly); 756fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly String getBestProvider(in Criteria criteria, boolean enabledOnly); 766fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly boolean providerMeetsCriteria(String provider, in Criteria criteria); 776fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly ProviderProperties getProviderProperties(String provider); 786fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly boolean isProviderEnabled(String provider); 796fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 806fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void addTestProvider(String name, in ProviderProperties properties); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeTestProvider(String provider); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setTestProviderLocation(String provider, in Location loc); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void clearTestProviderLocation(String provider); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setTestProviderEnabled(String provider, boolean enabled); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void clearTestProviderEnabled(String provider); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setTestProviderStatus(String provider, int status, in Bundle extras, long updateTime); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void clearTestProviderStatus(String provider); 88e932f7f2a47b770c636443d411436bd29cc4bb43Mike Lockwood 896fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly boolean sendExtraCommand(String provider, String command, inout Bundle extras); 906fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 916fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // --- internal --- 926fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 936fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // Used by location providers to tell the location manager when it has a new location. 946fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // Passive is true if the location is coming from the passive provider, in which case 956fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // it need not be shared with other providers. 966fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void reportLocation(in Location location, boolean passive); 976fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 986fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly // for reporting callback completion 996fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly void locationCallbackFinished(ILocationListener listener); 1006fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 1016fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 103