2013-04-06 87 views
1

我正在開發一款將Google地圖V2與GPS配合使用的應用。該代碼顯示了獲取用戶位置的緯度和經度的部分。無法在Android中獲取新GPS位置

map.setMyLocationEnabled(true); //Locate the user's current location 

LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE); 
Criteria crit = new Criteria(); 
String provider = service.getBestProvider(criteria, false); 
Location location = service.getLastKnownLocation(provider); 
LatLng locationOfUser = new LatLng(location.getLatitude(),location.getLongitude()); 

該應用程序基本上使用locationOfUser內的值,並可以畫一條線到用戶選擇的標記。但是,當我嘗試從不同位置的應用程序嘗試應用程序的藍色標記指示用戶的當前位置更改,但locationOfUser內的值沒有,並從最後一個位置,而不是當前位置畫線。

謝謝。

回答

1

您需要requestLocationUpdate

service.requestLocationUpdates(provider, updateInterval, updateDistance, new LocationListener() 
    { 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) 
     { 

     } 

     @Override 
     public void onProviderEnabled(String provider) 
     { 

     } 

     @Override 
     public void onProviderDisabled(String provider) 
     { 

     } 

     @Override 
     public void onLocationChanged(Location location) 
     { 
      LatLng locationOfUser = new LatLng(location.getLatitude(),location.getLongitude()); 
     } 
    }); 

哪裏updateInterval是慾望MIM時間間隔和updateDistance是最小距離間隔的願望。例如,您可以設置updateInterval = 1000和updateDistance = 1。

+0

感謝您的回答,我將不得不稍後再檢查,看看這是否會工作 – user1832478 2013-04-06 15:15:47

0

現在無需手動向LocationManager請求位置更新,現在OnMyLocationChangeListener接口已添加到API。

你只需要啓用我的定位層(map.setMyLocationEnabled(true)),設置監聽器(map.setOnMyLocationChangeListener(this)),做任何你想要在相應的回調傳回給您的當前位置(通過實現該接口提供)。