geolocation - Unable to detect user current location on android device -


i developing small android application in want find user current location. code structure detecting user location looks .

private void sendsms(context context, intent intent) {       final long minimum_distance_change_for_updates = 1; // in meters      final long minimum_time_between_updates = 1000; // in milliseconds       locationmanager locationmanager;      locationmanager = (locationmanager) context.getsystemservice(context.location_service);        locationmanager.requestlocationupdates(          locationmanager.gps_provider,       minimum_time_between_updates,       minimum_distance_change_for_updates,     new mylocationlistener()      );       location location = locationmanager.getlastknownlocation(locationmanager.gps_provider);      string loc_message = null;       if (location != null)       {      loc_message =string.format(          "current location \n longitude: %1$s \n latitude: %2$s",          location.getlongitude(), location.getlatitude()       );     toast.maketext(context, loc_message,toast.length_long).show();      } }     private class mylocationlistener implements locationlistener {           public void onlocationchanged(location location) {          string message = string.format(                  "new location \n longitude: %1$s \n latitude: %2$s",                  location.getlongitude(), location.getlatitude()          );      }       public void onstatuschanged(string s, int i, bundle b) {       }       public void onproviderdisabled(string s) {      }       public void onproviderenabled(string s) {      }      } } 

working fine on simulator send coordinates ddms. when run on device not giving me output.on device keep use gps satellites enable. when tried find user location it's not giving output.... need help... thank you.......

here skeleton of gps service used in tracking application, has been tested, , works fine can guarantee that. hope out.

import java.util.timer; import java.util.timertask;  import android.app.notification; import android.app.pendingintent; import android.app.service; import android.content.context; import android.content.intent; import android.content.sharedpreferences; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.bundle; import android.os.handler; import android.os.ibinder; import android.os.powermanager; import android.os.powermanager.wakelock; import android.preference.preferencemanager; import android.util.log;  public class trackingservice extends service {     private static final string tag = trackingservice.class.getsimplename();      private static final long time_between_updates = 1000l;     private static final long minimum_distance_change = 0l;      private wakelock mwakelock;      private locationmanager mlocationmanager;      private final timer mtimer = new timer();     private handler mhandler = new handler();      private locationlistener mlocationlistenergps = new locationlistener() {          public void onlocationchanged(location location) {             // code here         }          public void onstatuschanged(string provider, int status, bundle extras) {         }          public void onproviderenabled(string provider) {         }          public void onproviderdisabled(string provider) {         }     };      private void registerlocationlistener() {         if (mlocationmanager == null) {             log.e(tag, "trackingservice: not have location manager.");             return;         }         log.d(tag, "preparing register location listener w/ trackingservice...");         try {             mlocationmanager.requestlocationupdates(locationmanager.gps_provider, time_between_updates, minimum_distance_change, mlocationlistenergps);             log.d(tag, "...location listener registered w/ trackingservice @ " + time_between_updates);         } catch (runtimeexception e) {             log.e(tag, "could not register location listener: " + e.getmessage(), e);         }     }      private void unregisterlocationlistener() {         if (mlocationmanager == null) {             log.e(tag, "trackingservice: not have location manager.");             return;         }         mlocationmanager.removeupdates(mlocationlistenergps);         log.d(tag, "location listener unregistered w/ trackingservice.");     }      private timertask mchecklocationlistenertask = new timertask() {         @override         public void run() {             mhandler.post(new runnable() {                 public void run() {                     log.d(tag, "re-registering location listener trackingservice.");                     unregisterlocationlistener();                     registerlocationlistener();                 }             });         }     };      @override     public void oncreate() {         super.oncreate();          mlocationmanager = (locationmanager) getsystemservice(context.location_service);          registerlocationlistener();          mtimer.schedule(mchecklocationlistenertask, 1000 * 60 * 5, 1000 * 60);          acquirewakelock();          log.d(tag, "service started...");     }      @override     public void onstart(intent intent, int startid) {         handlestartcommand(intent, startid);     }      @override     public int onstartcommand(intent intent, int flags, int startid) {         handlestartcommand(intent, startid);         return start_sticky;     }      private void handlestartcommand(intent intent, int startid) {         notification notification = new notification(r.drawable.ic_launcher,                 gettext(r.string.trackingservice_notification_rolling_text),                 system.currenttimemillis());          pendingintent contentintent = pendingintent.getactivity(this, 0,                 new intent(this, mainactivity.class),                 pendingintent.flag_update_current);          notification.setlatesteventinfo(this,                 gettext(r.string.trackingservice_notification_ticker_title),                 gettext(r.string.trackingservice_notification_ticker_text),                 contentintent);          startforeground(1, notification);     }      @override     public void ondestroy() {         stopforeground(true);         mtimer.cancel();         mtimer.purge();         mhandler.removecallbacksandmessages(null);         unregisterlocationlistener();         releasewakelock();         super.ondestroy();         log.d(tag, "service stopped...");     }      private void acquirewakelock() {         try {             powermanager pm = (powermanager) getsystemservice(context.power_service);             if (pm == null) {                 log.e(tag, "trackrecordingservice: power manager not found!");                 return;             }             if (mwakelock == null) {                 mwakelock = pm.newwakelock(powermanager.partial_wake_lock, tag);                 if (mwakelock == null) {                     log.e(tag, "trackrecordingservice: not create wake lock (null).");                     return;                 }             }             if (!mwakelock.isheld()) {                 mwakelock.acquire();                 if (!mwakelock.isheld()) {                     log.e(tag, "trackrecordingservice: not acquire wake lock.");                 }             }         } catch (runtimeexception e) {             log.e(tag, "trackrecordingservice: caught unexpected exception: "                     + e.getmessage(), e);         }     }      /**      * releases wake lock if it's held.      */     private void releasewakelock() {         if (mwakelock != null && mwakelock.isheld()) {             mwakelock.release();             mwakelock = null;         }     } } 

and in androidmanifest.xml file need

<uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.wake_lock"/> 

just fill out gps location listener, register service in androidmanifest.xml, start service activity, , enjoy.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -