android - geo location using GPS -


i using below code getting geo-location using gps when net not available.but location not updated.it give same longitude , latitude different location ...it not update value of longitude , latitude..i want accurate value of longitude , latitude each place.

gpstracker .java

public class gpstracker extends service implements locationlistener {  private final context mcontext;  // flag gps status boolean isgpsenabled = false;  // flag network status boolean isnetworkenabled = false;  // flag gps status boolean cangetlocation = false;  location location; // location double latitude; // latitude double longitude; // longitude  // minimum distance change updates in meters private static final long min_distance_change_for_updates = 1; // 1 meters  // minimum time between updates in milliseconds private static final long min_time_bw_updates = 1000; // 1 second  // declaring location manager protected locationmanager locationmanager;  public gpstracker(context context) {     this.mcontext = context;     getlocation(); }  public location getlocation() {     try {         locationmanager = (locationmanager) mcontext                 .getsystemservice(location_service);          // getting gps status         isgpsenabled = locationmanager                 .isproviderenabled(locationmanager.gps_provider);          // getting network status         isnetworkenabled = locationmanager                 .isproviderenabled(locationmanager.network_provider);          if (!isgpsenabled && !isnetworkenabled) {             // no network provider enabled         } else {             this.cangetlocation = true;             // first location network provider             if (isnetworkenabled) {                 locationmanager.requestlocationupdates(                         locationmanager.network_provider,                         min_time_bw_updates,                         min_distance_change_for_updates, this);                 log.d("network", "network");                 if (locationmanager != null) {                     location = locationmanager                             .getlastknownlocation(locationmanager.network_provider);                     if (location != null) {                         latitude = location.getlatitude();                         longitude = location.getlongitude();                     }                 }             }             // if gps enabled lat/long using gps services             if (isgpsenabled) {                 if (location == null) {                     locationmanager.requestlocationupdates(                             locationmanager.gps_provider,                             min_time_bw_updates,                             min_distance_change_for_updates, this);                     log.d("gps enabled", "gps enabled");                     if (locationmanager != null) {                         location = locationmanager                                 .getlastknownlocation(locationmanager.gps_provider);                         if (location != null) {                             latitude = location.getlatitude();                             longitude = location.getlongitude();                         }                     }                 }             }         }      } catch (exception e) {         e.printstacktrace();     }      return location; }  /**  * stop using gps listener calling function stop using gps in  * app  * */ public void stopusinggps() {     if (locationmanager != null) {         locationmanager.removeupdates(gpstracker.this);     } }  /**  * function latitude  * */ public double getlatitude() {     if (location != null) {         latitude = location.getlatitude();     }      // return latitude     return latitude; }  /**  * function longitude  * */ public double getlongitude() {     if (location != null) {         longitude = location.getlongitude();     }      // return longitude     return longitude; }  /**  * function check gps/wifi enabled  *   * @return boolean  * */ public boolean cangetlocation() {     return this.cangetlocation; }  /**  * function show settings alert dialog on pressing settings button  * lauch settings options  * */ public void showsettingsalert() {     alertdialog.builder alertdialog = new alertdialog.builder(mcontext);      // setting dialog title     alertdialog.settitle("gps settings");      // setting dialog message     alertdialog             .setmessage("gps not enabled. want go settings menu?");      // on pressing settings button     alertdialog.setpositivebutton("settings",             new dialoginterface.onclicklistener() {                 public void onclick(dialoginterface dialog, int which) {                     intent intent = new intent(                             settings.action_location_source_settings);                     mcontext.startactivity(intent);                 }             });      // on pressing cancel button     alertdialog.setnegativebutton("cancel",             new dialoginterface.onclicklistener() {                 public void onclick(dialoginterface dialog, int which) {                     dialog.cancel();                 }             });      // showing alert message     alertdialog.show(); }  @override public void onlocationchanged(location location) { }  @override public void onproviderdisabled(string provider) { }  @override public void onproviderenabled(string provider) { }  @override public void onstatuschanged(string provider, int status, bundle extras) { }  @override public ibinder onbind(intent arg0) {     return null; } 

}

mainactivity.java

if (gps.cangetlocation()) {                  double latitude = gps.getlatitude();                 double longitude = gps.getlongitude();                  // \n new line                 toast.maketext(                         getapplicationcontext(),                         "your location - \nlat: " + latitude                                 + "\nlong: " + longitude, toast.length_long)                         .show();             } else {                 // can't location                 // gps or network not enabled                 // ask user enable gps/network in settings                 gps.showsettingsalert();             } 

you have empty method onlocationchanged(). should proceed obtained location in body, like:

@override public void onlocationchanged(location location) {     this.location = location; } 

Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -