Android 如何获取经纬度

Android 如何获取经纬度

下面为过程中运用到得知识:

后面直接已经贴出了代码,但是在这里呢,还是给大家说下1.5和2.2的SDK的区别,在1.5的SDK中你必须导入map.jar,才能使用GPS的相关信息,但是2.2的SDK已经自动给你集成了,因此可以直接调用.

Java代码:

Java代码

  1. packageeoe.demo;
  2. importandroid.app.Activity;
  3. importandroid.content.Context;
  4. importandroid.location.Criteria;
  5. importandroid.location.Location;
  6. importandroid.location.LocationListener;
  7. importandroid.location.LocationManager;
  8. importandroid.os.Bundle;
  9. importandroid.util.Log;
  10. importandroid.widget.EditText;
  11. publicclassmainActivityextendsActivityimplementsLocationListener{
  12. privateEditTextserverAddress;
  13. privateEditTextscanString;
  14. privateEditTextlongitude;
  15. privateEditTextdimensions;
  16. privateLocationManagerlm;
  17. /**Calledwhentheactivityisfirstcreated.*/
  18. @Override
  19. publicvoidonCreate(BundlesavedInstanceState){
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. InitEditText();
  23. InitLocation();
  24. }
  25. privatevoidInitLocation(){
  26. Criteriacriteria=newCriteria();
  27. criteria.setAccuracy(Criteria.ACCURACY_FINE);
  28. criteria.setAltitudeRequired(false);
  29. criteria.setBearingRequired(false);
  30. criteria.setCostAllowed(true);
  31. criteria.setPowerRequirement(Criteria.POWER_LOW);
  32. lm=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
  33. Stringprovider=lm.getBestProvider(criteria,true);
  34. Locationlocation=lm.getLastKnownLocation(provider);
  35. updataGpsWidthLocation(location);
  36. //首次进去获取GSP信息
  37. //每隔一定的时间通知server去更新一下GPS信息
  38. //这个时候屏幕上面应该会出现一个锅了
  39. lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1l,1l,this);
  40. }
  41. /*
  42. *updategpsinformationwithlocation
  43. */
  44. privatevoidupdataGpsWidthLocation(Locationlocation){
  45. //TODOAuto-generatedmethodstub
  46. if(location!=null){
  47. doublelit=location.getLongitude();//进度
  48. doubledimen=location.getLatitude();//维度
  49. longitude.setText(""+lit);
  50. this.dimensions.setText(""+dimen);
  51. }else{
  52. longitude.setText("getlongitudefail");
  53. dimensions.setText("getdimensionsfail");
  54. }
  55. }
  56. privatevoidInitEditText(){
  57. //TODOAuto-generatedmethodstub
  58. serverAddress=(EditText)this.findViewById(R.id.server);
  59. scanString=(EditText)this.findViewById(R.id.scanString);
  60. longitude=(EditText)this.findViewById(R.id.longitude);
  61. dimensions=(EditText)this.findViewById(R.id.dimensions);
  62. }
  63. privatefinalStringTAG="GPSINFO";
  64. //locationchange
  65. @Override
  66. publicvoidonLocationChanged(Locationlocation){
  67. //TODOAuto-generatedmethodstub
  68. //该函数为系统函数,每隔一定的时间便会自动进行调用
  69. //locationchange
  70. Log.e(TAG,"locationchange");
  71. updataGpsWidthLocation(location);
  72. }
  73. privatevoidgetLocation(Locationlocation){
  74. }
  75. @Override
  76. publicvoidonProviderDisabled(Stringprovider){
  77. //TODOAuto-generatedmethodstub
  78. //providerdisable
  79. Log.e(TAG,"providerdisabled");
  80. }
  81. @Override
  82. publicvoidonProviderEnabled(Stringprovider){
  83. //TODOAuto-generatedmethodstub
  84. //providerEnabled
  85. Log.e(TAG,"providerenabled");
  86. }
  87. @Override
  88. publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){
  89. //TODOAuto-generatedmethodstub
  90. //statuschanged
  91. Log.e(TAG,"statusChanged");
  92. }
  93. @Override
  94. protectedvoidonResume(){
  95. super.onResume();
  96. if(lm!=null)
  97. {
  98. lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1l,1l,this);//重新获取GSP信息
  99. }
  100. }
  101. @Override
  102. protectedvoidonPause(){
  103. super.onPause();
  104. if(lm!=null){
  105. lm.removeUpdates(this);//移除那个锅,也就是告诉GPS服务器不要发送GPS信息呢
  106. }
  107. }
  108. }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值