Home | History | Annotate | Download | only in location
      1 /*
      2  * Copyright (C) 2007, The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.location;
     18 
     19 import android.app.PendingIntent;
     20 import android.location.Address;
     21 import android.location.Criteria;
     22 import android.location.GeocoderParams;
     23 import android.location.Geofence;
     24 import android.location.IGeocodeProvider;
     25 import android.location.IGpsStatusListener;
     26 import android.location.ILocationListener;
     27 import android.location.Location;
     28 import android.location.LocationRequest;
     29 import android.os.Bundle;
     30 
     31 import com.android.internal.location.ProviderProperties;
     32 
     33 /**
     34  * System private API for talking with the location service.
     35  *
     36  * @hide
     37  */
     38 interface ILocationManager
     39 {
     40     void requestLocationUpdates(in LocationRequest request, in ILocationListener listener,
     41             in PendingIntent intent, String packageName);
     42     void removeUpdates(in ILocationListener listener, in PendingIntent intent, String packageName);
     43 
     44     void requestGeofence(in LocationRequest request, in Geofence geofence,
     45             in PendingIntent intent, String packageName);
     46     void removeGeofence(in Geofence fence, in PendingIntent intent, String packageName);
     47 
     48     Location getLastLocation(in LocationRequest request, String packageName);
     49 
     50     boolean addGpsStatusListener(IGpsStatusListener listener, String packageName);
     51     void removeGpsStatusListener(IGpsStatusListener listener);
     52 
     53     boolean geocoderIsPresent();
     54     String getFromLocation(double latitude, double longitude, int maxResults,
     55         in GeocoderParams params, out List<Address> addrs);
     56     String getFromLocationName(String locationName,
     57         double lowerLeftLatitude, double lowerLeftLongitude,
     58         double upperRightLatitude, double upperRightLongitude, int maxResults,
     59         in GeocoderParams params, out List<Address> addrs);
     60 
     61     boolean sendNiResponse(int notifId, int userResponse);
     62 
     63     // --- deprecated ---
     64     List<String> getAllProviders();
     65     List<String> getProviders(in Criteria criteria, boolean enabledOnly);
     66     String getBestProvider(in Criteria criteria, boolean enabledOnly);
     67     boolean providerMeetsCriteria(String provider, in Criteria criteria);
     68     ProviderProperties getProviderProperties(String provider);
     69     boolean isProviderEnabled(String provider);
     70 
     71     void addTestProvider(String name, in ProviderProperties properties);
     72     void removeTestProvider(String provider);
     73     void setTestProviderLocation(String provider, in Location loc);
     74     void clearTestProviderLocation(String provider);
     75     void setTestProviderEnabled(String provider, boolean enabled);
     76     void clearTestProviderEnabled(String provider);
     77     void setTestProviderStatus(String provider, int status, in Bundle extras, long updateTime);
     78     void clearTestProviderStatus(String provider);
     79 
     80     boolean sendExtraCommand(String provider, String command, inout Bundle extras);
     81 
     82     // --- internal ---
     83 
     84     // Used by location providers to tell the location manager when it has a new location.
     85     // Passive is true if the location is coming from the passive provider, in which case
     86     // it need not be shared with other providers.
     87     void reportLocation(in Location location, boolean passive);
     88 
     89     // for reporting callback completion
     90     void locationCallbackFinished(ILocationListener listener);
     91 
     92 
     93 }
     94