2010-05-19 164 views
2

我第一次使用android.location.Geocoder。想法是:我有一个按钮,它从EditText获取输入并解析位置。到目前为止它是调试阶段,所以我没有处理程序从线程中获取消息,只进行地理编码并写入logcat。 问:为什么这个方法总是返回一个Address对象的空列表?为什么Geocoder.getFromLocationName(...)返回一个空列表?

private View.OnClickListener checkLocation = new View.OnClickListener() {  

    @Override 
    public void onClick(View v) { 
     location = ((EditText)findViewById(R.id.getLocation)).getText().toString(); 
     Thread thr = new Thread(){ 
      public void run(){ 
       Log.d("Looking for", location); 
       Geocoder gc = new Geocoder(ctx,Locale.ITALY); 
       try { 
        fa= gc.getFromLocationName(location, 3); 
        if (fa.isEmpty())Log.d("getFromLocationName", "NothingFound"); 
        else 
        { 
         int size= fa.size(); 
         for (int i = 0; i<size ;i++) 
          Log.d("getFromLocationName.at("+ String.valueOf(i) +")", fa.get(i).getAddressLine(0)+", "+fa.get(0).getAddressLine(1)); 
        } 
       } catch (IOException e) { 
        Log.e("IOException", e.getMessage()); 
       } 

      } 
     }; 
     thr.start(); 

    } 
}; 

清单:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

有人知道这是为什么? (顺便说一句,我使用1.6 sdk)输入尝试

回答

5

该项目没有针对正确的AVD。要使用地理位置,你必须使它指向实施谷歌API的AVD。一旦我改变了它,一切正常。对不起打扰

+1

感谢队友,这也解决了我的问题! – dgraziotin 2010-05-19 16:04:30

0

因为它不能识别你正在投入的地址或它无法到达服务。

你要投什么地址?尝试一些简单的邮政编码或城市或州名称。

+0

我tryed这个的: 位置= { “伦敦” “的Dalvik,冰岛” “1600剧场百汇,山景,CA” “证券及期货条例” } 我也被告知设置设置 - > languange&keyboard - > Locale ... – urobo 2010-05-19 13:41:19

相关问题