am 1e11e95f: Merge "Add Geocorder.isImplemented()" into kraken

This commit is contained in:
Mike Lockwood
2010-05-24 13:01:21 -07:00
committed by Android Git Automerger
4 changed files with 36 additions and 1 deletions

View File

@@ -82140,6 +82140,17 @@
<exception name="IOException" type="java.io.IOException">
</exception>
</method>
<method name="isImplemented"
return="java.lang.Boolean"
abstract="false"
native="false"
synchronized="false"
static="true"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
</class>
<class name="GeocoderParams"
extends="java.lang.Object"

View File

@@ -40,7 +40,9 @@ import java.util.List;
*
* The Geocoder class requires a backend service that is not included in
* the core android framework. The Geocoder query methods will return an
* empty list if there no backend service in the platform.
* empty list if there no backend service in the platform. Use the
* isImplemented() method to determine whether a Geocoder implementation
* exists.
*/
public final class Geocoder {
private static final String TAG = "Geocoder";
@@ -48,6 +50,23 @@ public final class Geocoder {
private GeocoderParams mParams;
private ILocationManager mService;
/**
* Returns true if the Geocoder methods getFromLocation and
* getFromLocationName are implemented. Lack of network
* connectivity may still cause these methods to return null or
* empty lists.
*/
public static Boolean isImplemented() {
IBinder b = ServiceManager.getService(Context.LOCATION_SERVICE);
ILocationManager lm = ILocationManager.Stub.asInterface(b);
try {
return lm.geocoderIsImplemented();
} catch (RemoteException e) {
Log.e(TAG, "isImplemented: got RemoteException", e);
return false;
}
}
/**
* Constructs a Geocoder whose responses will be localized for the
* given Locale.

View File

@@ -67,6 +67,7 @@ interface ILocationManager
// it need not be shared with other providers.
void reportLocation(in Location location, boolean passive);
boolean geocoderIsImplemented();
String getFromLocation(double latitude, double longitude, int maxResults,
in GeocoderParams params, out List<Address> addrs);
String getFromLocationName(String locationName,

View File

@@ -1940,6 +1940,10 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
// Geocoder
public Boolean geocoderIsImplemented() {
return mGeocodeProvider != null;
}
public String getFromLocation(double latitude, double longitude, int maxResults,
GeocoderParams params, List<Address> addrs) {
if (mGeocodeProvider != null) {