• Android中通過GPS或NetWork獲取當前位置的經緯度

    1
    Android Java XML C/C++ Go 22018 次瀏覽
    今天在Android項目中要實現一個通過GPS或NetWork來獲取當前移動終端設備的經緯度功能。要實現該功能要用到Android Framework 中的 LocationManager 類。下面我就直接貼上主要的代碼說明如何實現通過GPS或NetWork來獲取實時位置的經緯度。
    private double latitude=0.0;
    private double longitude =0.0;
    
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    		if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
    			Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    			if(location != null){
    				latitude = location.getLatitude();
    				longitude = location.getLongitude();
    				}
    		}else{
    			LocationListener locationListener = new LocationListener() {
    				
    				// Provider的狀態在可用、暫時不可用和無服務三個狀態直接切換時觸發此函數
    				@Override
    				public void onStatusChanged(String provider, int status, Bundle extras) {
    					
    				}
    				
    				// Provider被enable時觸發此函數,比如GPS被打開
    				@Override
    				public void onProviderEnabled(String provider) {
    					
    				}
    				
    				// Provider被disable時觸發此函數,比如GPS被關閉 
    				@Override
    				public void onProviderDisabled(String provider) {
    					
    				}
    				
    				//當坐標改變時觸發此函數,如果Provider傳進相同的坐標,它就不會被觸發 
    				@Override
    				public void onLocationChanged(Location location) {
    					if (location != null) {   
    						Log.e("Map", "Location changed : Lat: "  
    						+ location.getLatitude() + " Lng: "  
    						+ location.getLongitude());   
    					}
    				}
    			};
    			locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);   
    			Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);   
    			if(location != null){   
    				latitude = location.getLatitude(); //經度   
    				longitude = location.getLongitude(); //緯度
    			}   
    		}
    同時別忘了在AndroidManifest.xml文件中加入如下權限:
    <!-- 連接互聯網Internet權限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- GPS定位權限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    文章出處:http://blog.csdn.net/cjjky/article/details/6557561

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色