am 1e11e95f: Merge "Add Geocorder.isImplemented()" into kraken
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user