我第一次使用android.location.Geocoder。想法是:我在按钮上有一个监听器,它从EditText获取输入并解析位置。到目前为止它是调试阶段,所以我没有处理程序从线程接收消息,只有地理编码和写入logcat。 问:为什么这个方法总是返回一个空的Address对象列表?
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)输入尝试
答案 0 :(得分:5)
该项目未针对正确的AVD。要使用地理定位,您必须指出实施Google API的avd。一旦我改变它一切都很好。抱歉打扰
答案 1 :(得分:0)
因为它无法识别您输入的地址或无法访问该服务。
你在放什么地址?尝试像邮政编码或城市或州名这样简单的东西。