ILocationManager.aidl revision ea8a8a6076f04360de2d25b3e5853cde8026cd5f
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;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.IGpsStatusListener;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.ILocationListener;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.location.Location;
286fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pellyimport android.location.LocationRequest;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
316fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pellyimport com.android.internal.location.ProviderProperties;
326fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private API for talking with the location service.
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
366fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly * @hide
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface ILocationManager
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
406fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void requestLocationUpdates(in LocationRequest request, in ILocationListener listener,
416fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly            in PendingIntent intent, String packageName);
426fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void removeUpdates(in ILocationListener listener, in PendingIntent intent, String packageName);
436fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
446fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void requestGeofence(in LocationRequest request, in Geofence geofence,
456fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly            in PendingIntent intent, String packageName);
466fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void removeGeofence(in Geofence fence, in PendingIntent intent, String packageName);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
484035f5a7c191a68bc9a5912ce44c43c82e9e5dbfNick Pelly    Location getLastLocation(in LocationRequest request, String packageName);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50a06de0f29b58df9246779cc4bfd8f06f7205ddb6Dianne Hackborn    boolean addGpsStatusListener(IGpsStatusListener listener, String packageName);
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeGpsStatusListener(IGpsStatusListener listener);
5248f17518223a2917fd82195004fbb206cb9a05a3Mike Lockwood
53e15735a9e0c0b1448b68f2d6b3247404fc1df417Mike Lockwood    boolean geocoderIsPresent();
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getFromLocation(double latitude, double longitude, int maxResults,
5534901409a404c8c66914c5a8ad0f29b1bcde0e78Mike Lockwood        in GeocoderParams params, out List<Address> addrs);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getFromLocationName(String locationName,
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double lowerLeftLatitude, double lowerLeftLongitude,
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double upperRightLatitude, double upperRightLongitude, int maxResults,
5934901409a404c8c66914c5a8ad0f29b1bcde0e78Mike Lockwood        in GeocoderParams params, out List<Address> addrs);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
616fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    boolean sendNiResponse(int notifId, int userResponse);
626fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
63ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaa    boolean addGpsMeasurementsListener(in IGpsMeasurementsListener listener, in String packageName);
64ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaa    boolean removeGpsMeasurementsListener(in IGpsMeasurementsListener listener);
65ea8a8a6076f04360de2d25b3e5853cde8026cd5fdestradaa
666fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // --- deprecated ---
676fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    List<String> getAllProviders();
686fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    List<String> getProviders(in Criteria criteria, boolean enabledOnly);
696fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    String getBestProvider(in Criteria criteria, boolean enabledOnly);
706fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    boolean providerMeetsCriteria(String provider, in Criteria criteria);
716fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    ProviderProperties getProviderProperties(String provider);
726fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    boolean isProviderEnabled(String provider);
736fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
746fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void addTestProvider(String name, in ProviderProperties properties);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeTestProvider(String provider);
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setTestProviderLocation(String provider, in Location loc);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearTestProviderLocation(String provider);
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setTestProviderEnabled(String provider, boolean enabled);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearTestProviderEnabled(String provider);
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setTestProviderStatus(String provider, int status, in Bundle extras, long updateTime);
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearTestProviderStatus(String provider);
82e932f7f2a47b770c636443d411436bd29cc4bb43Mike Lockwood
836fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    boolean sendExtraCommand(String provider, String command, inout Bundle extras);
846fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
856fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // --- internal ---
866fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
876fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // Used by location providers to tell the location manager when it has a new location.
886fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // Passive is true if the location is coming from the passive provider, in which case
896fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // it need not be shared with other providers.
906fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void reportLocation(in Location location, boolean passive);
916fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
926fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    // for reporting callback completion
936fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly    void locationCallbackFinished(ILocationListener listener);
946fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
956fa9ad4afcd762aea519ff61811386c23d18ddb2Nick Pelly
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
97