歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android獲取經緯度:從谷歌源碼中提取出來的獲取經緯度代碼

經過測試發現,在有的手機上獲取經緯度沒有問題,在其他的手機上獲取經緯度卻又問題,因此我查看了谷歌提供的源碼,從源碼裡面提取出了一份新的獲取經緯度的代碼,以後每次獲取基本都獲取成功了: 

  1. LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);  
  2.   
  3. Location retLocation = null ;  
  4. LocationProvider gpsProvider =  
  5. lm.getProvider("gps");  
  6.   
  7. if(gpsProvider == null)  
  8. {  
  9. longitude.setText("0");  
  10. dimensions.setText("0");  
  11. return;  
  12. }  
  13.   
  14.   
  15. //下面必須原封不動的照搬,否則就會出錯,原因我也不知道。   
  16. lm.requestLocationUpdates(gpsProvider.getName(),  
  17. 0 /*minTime*/0 /*minDist*/this);  
  18. try {  
  19. lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,  
  20. 3000 /*minTime*/0 /*minDist*/this);  
  21. catch (RuntimeException e) {  
  22. // If anything at all goes wrong with getting a cell location do not   
  23. // abort. Cell location is not essential to this app.   
  24. }  
  25.   
  26. retLocation = lm.getLastKnownLocation("gps");  
  27. if(retLocation==null)  
  28. {  
  29. longitude.setText("0");  
  30. dimensions.setText("0");  
  31. }  
  32. else  
  33. {  
  34. double geoLatitude = retLocation.getLatitude();//獲取經度   
  35. double geoLongitude = retLocation.getLongitude();//獲取維度   
  36.   
  37. longitude.setText(""+geoLongitude);  
  38. dimensions.setTag(""+geoLatitude);  
  39. }  
  40.   
  41. longitude.setEnabled(false);  
  42.    
  43.   
  44. Location改變的消息在這個接口方法中獲取:  
  45.   
  46.   
  47. private void updataGpsWidthLocation(Location location) {  
  48. // TODO Auto-generated method stub   
  49. if(location != null)  
  50. {  
  51. double lit = location.getLongitude();//進度   
  52. double dimen = location.getLatitude();//維度   
  53. longitude.setText(""+lit);  
  54. this.dimensions.setText(""+dimen);  
  55. float accuray=location.getAccuracy();//獲取精確度   
  56. Log.e("""accuray:"+accuray);  
  57. accurText.setText(""+accuray);  
  58. }  
  59. else  
  60. {  
  61. longitude.setText("0");  
  62. dimensions.setText("0");  
  63. }  
  64. }  
Copyright © Linux教程網 All Rights Reserved