Android 如何获取经纬度
下面为过程中运用到得知识:
后面直接已经贴出了代码,但是在这里呢,还是给大家说下1.5和2.2的SDK的区别,在1.5的SDK中你必须导入map.jar,才能使用GPS的相关信息,但是2.2的SDK已经自动给你集成了,因此可以直接调用.
Java代码:
Java代码
- packageeoe.demo;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.location.Criteria;
- importandroid.location.Location;
- importandroid.location.LocationListener;
- importandroid.location.LocationManager;
- importandroid.os.Bundle;
- importandroid.util.Log;
- importandroid.widget.EditText;
- publicclassmainActivityextendsActivityimplementsLocationListener{
- privateEditTextserverAddress;
- privateEditTextscanString;
- privateEditTextlongitude;
- privateEditTextdimensions;
- privateLocationManagerlm;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- InitEditText();
- InitLocation();
- }
- privatevoidInitLocation(){
- Criteriacriteria=newCriteria();
- criteria.setAccuracy(Criteria.ACCURACY_FINE);
- criteria.setAltitudeRequired(false);
- criteria.setBearingRequired(false);
- criteria.setCostAllowed(true);
- criteria.setPowerRequirement(Criteria.POWER_LOW);
- lm=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
- Stringprovider=lm.getBestProvider(criteria,true);
- Locationlocation=lm.getLastKnownLocation(provider);
- updataGpsWidthLocation(location);
- //首次进去获取GSP信息
- //每隔一定的时间通知server去更新一下GPS信息
- //这个时候屏幕上面应该会出现一个锅了
- lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1l,1l,this);
- }
- /*
- *updategpsinformationwithlocation
- */
- privatevoidupdataGpsWidthLocation(Locationlocation){
- //TODOAuto-generatedmethodstub
- if(location!=null){
- doublelit=location.getLongitude();//进度
- doubledimen=location.getLatitude();//维度
- longitude.setText(""+lit);
- this.dimensions.setText(""+dimen);
- }else{
- longitude.setText("getlongitudefail");
- dimensions.setText("getdimensionsfail");
- }
- }
- privatevoidInitEditText(){
- //TODOAuto-generatedmethodstub
- serverAddress=(EditText)this.findViewById(R.id.server);
- scanString=(EditText)this.findViewById(R.id.scanString);
- longitude=(EditText)this.findViewById(R.id.longitude);
- dimensions=(EditText)this.findViewById(R.id.dimensions);
- }
- privatefinalStringTAG="GPSINFO";
- //locationchange
- @Override
- publicvoidonLocationChanged(Locationlocation){
- //TODOAuto-generatedmethodstub
- //该函数为系统函数,每隔一定的时间便会自动进行调用
- //locationchange
- Log.e(TAG,"locationchange");
- updataGpsWidthLocation(location);
- }
- privatevoidgetLocation(Locationlocation){
- }
- @Override
- publicvoidonProviderDisabled(Stringprovider){
- //TODOAuto-generatedmethodstub
- //providerdisable
- Log.e(TAG,"providerdisabled");
- }
- @Override
- publicvoidonProviderEnabled(Stringprovider){
- //TODOAuto-generatedmethodstub
- //providerEnabled
- Log.e(TAG,"providerenabled");
- }
- @Override
- publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){
- //TODOAuto-generatedmethodstub
- //statuschanged
- Log.e(TAG,"statusChanged");
- }
- @Override
- protectedvoidonResume(){
- super.onResume();
- if(lm!=null)
- {
- lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1l,1l,this);//重新获取GSP信息
- }
- }
- @Override
- protectedvoidonPause(){
- super.onPause();
- if(lm!=null){
- lm.removeUpdates(this);//移除那个锅,也就是告诉GPS服务器不要发送GPS信息呢
- }
- }
- }