To get the Current latitude and longtitude in android Application -
To get the Current latitude and longtitude in android Application -
hi tried latitude , longtitude without using onlocationchanged
,by next link .but got unknown error.why error occur?find current location latitude , longitude
import java.sql.date; import java.sql.sqlexception; import java.text.simpledateformat; import java.util.timer; import java.util.timertask; import org.ksoap2.soapenvelope; import org.ksoap2.serialization.soapobject; import org.ksoap2.serialization.soapprimitive; import org.ksoap2.serialization.soapserializationenvelope; import org.ksoap2.transport.httptransportse; import android.app.activity; import android.app.alertdialog; import android.content.broadcastreceiver; import android.content.context; import android.content.dialoginterface; import android.content.intent; import android.content.intentfilter; import android.database.cursor; import android.location.criteria; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.net.connectivitymanager; import android.net.networkinfo; import android.os.bundle; import android.telephony.telephonymanager; import android.util.log; import android.widget.textview; import android.widget.toast; public class mainactivity extends activity implements locationlistener { final dbadapter1 db=new dbadapter1(this); private connectivityreceiver receiver = null; private textview txtnetworkinfo ; private static textview latitutefield; private static textview longitudefield; private locationmanager locationmanager; soapserializationenvelope envelope = new soapserializationenvelope(soapenvelope.ver11); private static final string hosturl =" http://yyy/service.svc"; // private static final string hosturl =" http://xxxx/service.svc"; private static final string namespace = "http://tempuri.org/"; private httptransportse httptransport = new httptransportse(hosturl); private string provider; private soapobject request=null; private static final long minimum_distance_change_for_updates = 1; // in meters private static final long minimum_time_between_updates = 1800000; // in milliseconds string str; string str2; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); latitutefield = (textview) findviewbyid(r.id.textview02); longitudefield = (textview) findviewbyid(r.id.textview04); locationmanager = (locationmanager) getsystemservice(context.location_service); // define criteria how select locatioin provider -> utilize // default criteria criteria = new criteria(); log.i("conntest",locationmanager.tostring()); provider = locationmanager.getbestprovider(criteria, false); location location = locationmanager.getlastknownlocation(provider); // initialize location fields if (location != null) { system.out.println("provider " + provider + " has been selected."); float lat = (float) (location.getlatitude()); float lng = (float) (location.getlongitude()); latitutefield.settext(string.valueof(lat)); longitudefield.settext(string.valueof(lng)); final double a=(int) (location.getlatitude() * 1e6); final double b=(int) (location.getlongitude() * 1e6); str = double.tostring(a); str2=double.tostring(b); } else { latitutefield.settext("provider not available"); longitudefield.settext("provider not available"); } txtnetworkinfo = (textview)findviewbyid(r.id.txtnetworkinfo); receiver = new connectivityreceiver(); registerreceiver(receiver,new intentfilter(connectivitymanager.connectivity_action)); } @override protected void onresume() { super.onresume(); //locationmanager.requestlocationupdates(provider,1000, 1, this); locationmanager.requestlocationupdates( provider, minimum_time_between_updates, minimum_distance_change_for_updates, ); } /* remove locationlistener updates when activity paused */ @override protected void onpause() { super.onpause(); locationmanager.removeupdates(this); } @override public void onlocationchanged(location location) { // todo auto-generated method stub float lat = (float) (location.getlatitude()); float lng = (float) (location.getlongitude()); longitudefield.settext(string.valueof(lng)); latitutefield.settext(string.valueof(lat)); log.e("344444444444:",str); toast.maketext(getbasecontext(), "latitude: " + str, toast.length_short).show(); seek { db.open(); } grab (sqlexception e) { // todo auto-generated grab block e.printstacktrace(); } long id=db.insert(latitutefield.gettext().tostring(),longitudefield.gettext().tostring()); if(id>1) { toast.maketext(getbasecontext(),"one record inserted",toast.length_long).show(); } else { toast.maketext(getbasecontext(),"not inserted",toast.length_long).show(); } } @override public void onproviderdisabled(string provider) { // todo auto-generated method stub } @override public void onproviderenabled(string provider) { // todo auto-generated method stub toast.maketext(this, "enabled new provider " + provider, toast.length_short).show(); } @override public void onstatuschanged(string provider, int status, bundle extras) { // todo auto-generated method stub toast.maketext(this, "disenabled provider " + provider, toast.length_short).show(); } protected void display(cursor c) { toast.maketext(this, "rowid: " + c.getstring(0) + "\n" + "latitude: " + c.getstring(1) + "\n" + "longitude: " + c.getstring(2) + "\n" + toast.length_long, 0).show(); } @override protected void ondestroy() { unregisterreceiver(receiver); super.ondestroy(); } private string getnetworkstatestring(networkinfo.state state){ string statestring = "unknown"; switch(state) { case connected: statestring = "connected"; break; case connecting: statestring = "connecting"; break; case disconnected: statestring = "disconnected"; break; case disconnecting: statestring = "disconnecting"; break; case suspended: statestring = "suspended"; break; default: statestring = "unknown"; break; } homecoming statestring; } private class connectivityreceiver extends broadcastreceiver{ private timer mtimer; private timertask mtimertask; @override public void onreceive(context context, intent intent) { networkinfo info = intent.getparcelableextra(connectivitymanager.extra_network_info); if(null != info) { string state = getnetworkstatestring(info.getstate()); if(state.equals("connected")){ mtimer = new timer(); mtimertask = new timertask() { @override public void run() { mainactivity.this.runonuithread(new runnable() { @override public void run() { //toast.maketext(getbasecontext(), "disenabled provider " + provider, ///toast.length_short).show(); result(); } }); } }; mtimer.scheduleatfixedrate(mtimertask,180000,180000); } } } } private void result() { soapprimitive response=null; final string methodname="insertallgpsinformation"; request = new soapobject(namespace,methodname); envelope.dotnet = true; telephonymanager telephonymanager = (telephonymanager)getsystemservice(context.telephony_service); string getimenumber=telephonymanager.getdeviceid(); simpledateformat sdfdatetime = new simpledateformat("yyyy-mm-dd hh:mm:ss"); string newtime = sdfdatetime.format(new date(system.currenttimemillis())); request.addproperty("imeinumber","0"); request.addproperty("longitude",str); request.addproperty("latitude",str2); request.addproperty("date",newtime); envelope.setoutputsoapobject(request); string result = null; seek { httptransport.call(namespace+"iservice/"+methodname, envelope); response = ( soapprimitive )envelope.getresponse(); result=response.tostring(); } catch(exception e) { toast.maketext(getbasecontext(), "your net connected or not login net"+"", toast.length_long).show(); log.e("upload image error:",e.getmessage()); } if(result.equals("saved successfully")){ toast.maketext(getbasecontext(), ""+result, toast.length_long).show(); } } }
with android pretty easy in order location gps service. utilize locationmanager easiest way it
locationmanager = (locationmanager)getsystemservice(context.location_service); customlocationlistener = new customlocationlistener(); locationmanager.requestlocationupdates( locationmanager.gps_provider, 0, 0, ll);
....a spagehtti code goes here.....
class customlocationlistener implements locationlistener{ ............ public void onlocationchanged(location arglocation) { if(location != null) { int latitude=(int)(arglocation.getlatitude()*1e6); int longitude=(int)(arglocation.getlongitude()*1e6); } } ........ }
might check location android api , android development
android latitude-longitude
Comments
Post a Comment