从Android中获取经度和经度的城市名称使服务不可用Android 4.0.3?
作者:互联网
我在应用程序中使用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,location,geocode,city 来源: https://codeday.me/bug/20190725/1536067.html