java - No GPS Update retrieved? Problem in Code? -
i've got serious problem gps on nexus one: wrote kind of hello world gps, toast should displayed isn't :(
i don't know i'm doing wrong...maybe me getting work. here's code:
package gps.test; import android.app.activity; import android.content.context; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.bundle; import android.widget.toast; public class gps extends activity { private locationmanager lm; private locationlistener locationlistener; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // ---use locationmanager class obtain gps locations--- lm = (locationmanager) getsystemservice(context.location_service); locationlistener = new mylocationlistener(); lm.requestlocationupdates(locationmanager.gps_provider, 100, 1, locationlistener); } private class mylocationlistener implements locationlistener { @override public void onlocationchanged(location loc) { if (loc != null) { toast.maketext( getbasecontext(), "location changed : lat: " + loc.getlatitude() + " lng: " + loc.getlongitude(), toast.length_short).show(); } } @override public void onproviderdisabled(string provider) { // todo auto-generated method stub } @override public void onproviderenabled(string provider) { // todo auto-generated method stub } @override public void onstatuschanged(string provider, int status, bundle extras) { // todo auto-generated method stub } } }
theoretically there should new toast every 100 milliseconds, shouldn't it? or @ least, when change position 1 meter!? i've no idea why doesn't. must admit i'm new topic, maybe i've missed something?
it great if give me hint :)
nice greetings, poeschlorn
the code looks correct me. note that:
lm.requestlocationupdates(locationmanager.gps_provider, 100, 1, locationlistener);
this means have move phone more meter location updates , check done approximately every 0.1 second.
i suggest add logging statements in these functions:
@override public void onproviderdisabled(string provider) { // todo auto-generated method stub } @override public void onproviderenabled(string provider) { // todo auto-generated method stub } @override public void onstatuschanged(string provider, int status, bundle extras) { // todo auto-generated method stub }
this know flow code taking. gps disabled e.g. , you'll not know within app.
and finally, remember remove listening locations in onpause (or when required). having app in background continuously getting location updates when not required huge drain battery.
Comments
Post a Comment