我在应用程序中使用的是 Android 4.0.3 版本。现在我想从 LATITUDE 和 LONGITUDE 获取城市名称或其他信息
但是当我运行应用程序时显示服务不可用。
Logcat
01-10 13:58:29.279: W/System.err(1211): java.io.IOException: Service not Available
01-10 13:58:29.289: W/System.err(1211): at android.location.Geocoder.getFromLocation(Geocoder.java:136)
01-10 13:58:29.299: W/System.err(1211): at com.example.vixxa.VisitorActivity$CityAsyncTask.doInBackground(VisitorActivity.java:601)
01-10 13:58:29.319: W/System.err(1211): at com.example.vixxa.VisitorActivity$CityAsyncTask.doInBackground(VisitorActivity.java:1)
01-10 13:58:29.329: W/System.err(1211): at android.os.AsyncTask$2.call(AsyncTask.java:264)
01-10 13:58:29.329: W/System.err(1211): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-10 13:58:29.339: W/System.err(1211): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-10 13:58:29.349: W/System.err(1211): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-10 13:58:29.349: W/System.err(1211): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-10 13:58:29.359: W/System.err(1211): at java.lang.Thread.run(Thread.java:856)
CodeAsynctak.java
public class CityAsyncTask extends AsyncTask<String , String,String>
{
@Override
protected String doInBackground(String... params) {
Geocoder geocoder = new Geocoder(VisitorActivity.this, Locale.getDefault());
try
{
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
Log.e("Addresses","-->"+addresses);
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
}
最佳答案
尝试使用此代码,它适用于我的 TAB2。
public class CityAsyncTask extends AsyncTask<String , String,String>
{
@Override
protected String doInBackground(String... params) {
Geocoder geocoder = new Geocoder(LatLongActivity.this, Locale.getDefault());
try
{
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
Log.e("Addresses","-->"+addresses);
result = addresses.get(0).toString();
}
catch (IOException e)
{
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
AlertDialog.Builder alert = new AlertDialog.Builder(LatLongActivity.this);
alert.setTitle("ADDRESS");
alert.setMessage(result);
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
alert.setCancelable(false);
alert.show();
}
}
关于android - 在 android 中从纬度和经度获取城市名称会导致服务不可用 Android 4.0.3?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14253737/