Android 反向地理编码不起作用

Android 反向地理编码不起作用,android,geocoding,invert,Android,Geocoding,Invert,我正在和这个战斗,我不能再爱 我的问题是,我有一个活动,当你按下一个按钮时,计时器开始计数,同时获取coordenates并将其保存到一个变量中。然后,当你按下另一个时间按钮时,计时器停止,得到一个新的坐标,并将其保存在另一个变量中 然后我用这个代码进行反向地理编码: private void tradueixpos() { Geocoder geoCoder = new Geocoder(this, Locale.getDefault()); try { Log

我正在和这个战斗,我不能再爱

我的问题是,我有一个活动,当你按下一个按钮时,计时器开始计数,同时获取coordenates并将其保存到一个变量中。然后,当你按下另一个时间按钮时,计时器停止,得到一个新的坐标,并将其保存在另一个变量中

然后我用这个代码进行反向地理编码:

private void tradueixpos() {
    Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
    try {
        Log.v("e", String.valueOf(latituteField));
        Log.v("e", String.valueOf(longitudeField));
        List<Address> Locat = geoCoder.getFromLocation(latituteField, longitudeField, 1);
        if (!Locat.isEmpty()) {
            Address address = Locat.get(0);
            result = address.getAddressLine(0) + ", " + address.getLocality();
            //number = address.getSubThoroughfare();
            //streetName = address.getThoroughfare();
            //Log.v("e", number+", "+streetName);
        }
        else {
            Log.v("error", "no trobat");
        }       
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
private void tradueixpos(){
Geocoder Geocoder=新的Geocoder(这个,Locale.getDefault());
试一试{
Log.v(“e”,String.valueOf(latituteField));
Log.v(“e”,String.valueOf(longitudeField));
List Locat=geoCoder.getFromLocation(latituteField,longitudeField,1);
如果(!Locat.isEmpty()){
地址=Locat.get(0);
结果=address.getAddressLine(0)+“,”+address.getLocation();
//number=地址。GetSubthoroughe();
//streetName=地址。GetThroughway();
//Log.v(“e”,编号+”,“+街道名称);
}
否则{
Log.v(“错误”,“无trobat”);
}       
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
因此,在这之后,它会将正式地址和最终地址传递给另一个活动

我的问题是,它返回null或有时它不工作,一个始终得到一些错误。我认为地理编码不起作用

(我正在使用api 15)

我把权限,所以是谁可以帮我做这个


谢谢

看看
http://developer.android.com/reference/android/location/Geocoder.html
。 它说:

Geocoder类需要一个不包含在核心android中的后端服务 框架如果没有后端,Geocoder查询方法将返回空列表 平台上的服务。使用isPresent()方法确定地理编码器 实施是存在的


如果您在模拟器中进行测试,那么在模拟器的更高版本中,该服务不起作用。例如,我知道它在API 9中被破坏了。如果API 15也是如此,我也不会感到惊讶。我知道API7仿真器可以工作,所以您可能希望在API7中尝试相同的代码。在真正的设备上,它仍然可以正常工作。(我的姜饼手机工作正常)

我终于解决了问题,但现在coordenats不好,我是说控制台“geo fix 43.231 1.899”中的条目是我家附近的coordenates,但程序说coordenates来自索马里。。。。这是正常的吗?你必须反转纬度和经度请检查此答案,详细说明如何实施