android - Request location updates not updating while driving -


i have written function requesting location updates:

 private void requestlocations() {     locationlistener = new locationupdater();     lm = (locationmanager) getsystemservice(context.location_service);     if (!lm.isproviderenabled(locationmanager.gps_provider)) {         lm.requestlocationupdates(locationmanager.network_provider,0,                 100, locationlistener);     } else {         lm.requestlocationupdates(locationmanager.gps_provider, 0, 100,                 locationlistener);         lm.requestlocationupdates(locationmanager.network_provider,0,                 100, locationlistener);     }  } 

i calling function in onstart() of service have made foreground service. in locationupdater have implemented locationlistener. in on location changed toasting lat/lang. working fine if @ walking speed. while driving not accurate , fast walking speed. though not toasting location if @ speed of more 50 km/h , stop again starts working , toast new location. wanted make in move 100 meters away should toast new location whatever speed is. please guide me , if wrong @ place make me correct.

try these code....it can helpful you

    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;      //flag wifi     boolean iswifienabled = 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 = 10; // 10 meters      // minimum time between updates in milliseconds     private static final long min_time_bw_updates = 1000 * 60 * 1; // 1 minute      // 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);              iswifienabled = locationmanager.isproviderenabled(locationmanager.passive_provider);               if (!isgpsenabled && !isnetworkenabled&&!iswifienabled) {                 // no network provider enabled             } else {                 this.cangetlocation = true;                 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();                              }                         }                     }                 }                    if (iswifienabled) {                      if (location == null) {                         locationmanager.requestlocationupdates(                                 locationmanager.passive_provider,                                 min_time_bw_updates,                                 min_distance_change_for_updates, this);                         log.d("gps enabled", "gps enabled");                         if (locationmanager != null) {                             location = locationmanager                                     .getlastknownlocation(locationmanager.passive_provider);                             if (location != null) {                                 latitude = location.getlatitude();                                 longitude = location.getlongitude();                              }                         }                     }                  }            } catch (exception e) {         }         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;     }  } 

Popular posts from this blog

c# - ODP.NET Oracle.ManagedDataAccess causes ORA-12537 network session end of file -

matlab - Compression and Decompression of ECG Signal using HUFFMAN ALGORITHM -

utf 8 - split utf-8 string into bytes in python -