I'm trying to reverse geocode, using htc desire c, when running the app, its throwing service not available exception. But GeoCoder.isPresent() is returning 'true'. Please help me out in finding the issue.
This is my code:
public class MainActivity extends Activity { LocationManager lManager; String provider; Location location ; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); provider = lManager.getBestProvider(criteria, false); if(provider!=null && !provider.equals("")){ // Get the location from the given provider location = lManager.getLastKnownLocation(provider); } boolean geoCoder = false; Geocoder geo = new Geocoder(this, Locale.getDefault()); geoCoder = Geocoder.isPresent(); System.out.println("GEO CODER : "+geoCoder); try { List<Address> address = geo.getFromLocation(location.getLatitude(), location.getLongitude(), 3); System.out.println("Size------------- "+address.size()); /*Address addr = address.get(0); System.out.println("City "+addr.getLocality());*/ } catch (IOException e) { // TODO Auto-generated catch block System.out.println("in here--------------"); e.printStackTrace(); } } Log:
03-16 10:33:58.609: I/System.out(30398): GEO CODER : true 03-16 10:33:58.609: I/System.out(30398): in here-------------- 03-16 10:33:58.609: W/System.err(30398): java.io.IOException: Service not Available 03-16 10:33:58.619: W/System.err(30398): at android.location.Geocoder.getFromLocation(Geocoder.java:136) 03-16 10:33:58.619: W/System.err(30398): at com.example.geocoder.MainActivity.onCreate(MainActivity.java:46) 03-16 10:33:58.619: W/System.err(30398): at android.app.Activity.performCreate(Activity.java:4538) 03-16 10:33:58.629: W/System.err(30398): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 03-16 10:33:58.629: W/System.err(30398): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 03-16 10:33:58.629: W/System.err(30398): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 03-16 10:33:58.629: W/System.err(30398): at android.app.ActivityThread.access$600(ActivityThread.java:139) 03-16 10:33:58.629: W/System.err(30398): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 03-16 10:33:58.629: W/System.err(30398): at android.os.Handler.dispatchMessage(Handler.java:99) 03-16 10:33:58.629: W/System.err(30398): at android.os.Looper.loop(Looper.java:156) 03-16 10:33:58.629: W/System.err(30398): at android.app.ActivityThread.main(ActivityThread.java:4987) 03-16 10:33:58.639: W/System.err(30398): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 10:33:58.639: W/System.err(30398): at java.lang.reflect.Method.invoke(Method.java:511) 03-16 10:33:58.639: W/System.err(30398): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 03-16 10:33:58.639: W/System.err(30398): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-16 10:33:58.649: W/System.err(30398): at dalvik.system.NativeStart.main(Native Method)