Service not available while calling geoCoder.getFromLocation()
android, google-geocoder
Solution
The actual reason why `Geocoder` was not working is because the `NetworkLocator` was killed in action. Probably due to less memory or maybe you used the Task Manager to kill all services?
I'm not sure but this is a guess. I've seen this before. Last year I wrote a reconnect mechanism to load the NetworkLocator.apk and bind to the `GeocoderService`. I think this change has not merged into JellyBean so this problem persists.
It can be only solved by reboot. (The `NetworkLocationService` is loaded at boot)
Edit: You won't see this problem in JBP or KK, this service is moved into the playstore app .
Problem
I know sometimes google back-end service might not be available. Hence a solution might be to loop until i get the data. ``` private class getLocationDetails extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { Log.d("looping", "" + count + ""); count++; double lat = Double.parseDouble(params[0]); double lng = Double.parseDouble(params[1]); List<Address> addresses = null; try { Geocoder gCoder = new Geocoder(ImageAndLocationActivity.this, Locale.getDefault()); addresses = gCoder.getFromLocation(lat, lng, 1); Address addr = addresses.get(0); user_country = addr.getCountryName(); user_city = addr.getLocality(); user_district = addr.getSubAdminArea(); if (user_city == null) { user_city = user_district; } } catch (Exception e) { Log.e("Exception in getLocationDetails - ", e.getMessage()); return null; } return ""; } @Override protected void onPostExecute(String result) { if (result != null) { Log.d("user_city = ", "" + user_city); } else { new getLocationDetails().execute(CurrentLat + "", CurrentLng + ""); } } @Override protected void onPreExecute() { } @Override protected void onProgressUpdate(Void... values) { } } ``` But i am not able to get the location at all: LogCat: ``` 02-27 16:29:49.568: D/looping(10966): 110355 02-27 16:29:49.568: E/Exception in getLocationDetails -(10966): Service not Available 02-27 16:29:49.573: D/looping(10966): 110356 02-27 16:29:49.573: E/Exception in getLocationDetails -(10966): Service not Available 02-27 16:29:49.573: D/looping(10966): 110357 02-27 16:29:49.573: E/Exception in getLocationDetails -(10966): Service not Available ``` and ofcourse i have added all the needed permissions: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` I am trying this on Samsung Galaxy Note GT-N7000 (4.0.4 version) Am i missing any settings? related to device or application ? Or this usually happens? If so any better solution to resolve this?? Thank You