2016-02-14 72 views
1

我有一個跟蹤用戶位置的應用程序。 我的應用使用FusedLocationApi,Google使用Google Play服務獲取設備位置的新方式。Fused Location Api從GPS獲取時間

的,我從GPS得到的位置

提供被標記爲

因爲應用程序的用戶可以更改設備的時間,它從GPS得到真正的時間是非常重要的。

問題是,當我試圖從Location對象獲取的時候,它會返回設備時沒有GPS的時間。

的任何解決方案,以獲得在這種情況下,GPS的時間是讚賞。

private Location mLastLocation;  

public void onConnected(Bundle arg0) { 

    LocationServices.FusedLocationApi.requestLocationUpdates(
      mGoogleApiClient, mLocationRequest, this); 
} 

public void onLocationChanged(Location location) { 

    mLastLocation = LocationServices.FusedLocationApi 
      .getLastLocation(mGoogleApiClient); 

    if (mLastLocation != null) { 

     double latitude = mLastLocation.getLatitude(); 
     double longitude = mLastLocation.getLongitude(); 
     Date date = new Date(mLastLocation.getTime()); 

     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");    
     String time = dateFormat.format(date) 
} 
+0

您必須禁止使用網絡的位置提供。 – theWalker

+0

見:http://stackoverflow.com/questions/4418344/android-problem-finding-out-how-recent-latest-gps-fix-is – theWalker

+0

@skippy:對不起,響應延遲。你是對的 。這可以通過'LocationManager'實現,但是我怎麼能在'FusedLocationApi'中做到這一點?這個解決方案可能嗎? – deuxdeux

回答

1

要獲得GPS UTC,做到在正常方式:

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this); 
// not LocationManager.NETWORK_PROVIDER 

@Override 
public void onLocationChanged(Location location) 
{ 
    long utc = location.getTime(); 
    // .... 
} 
+0

這是偉大的,但你提到這部作品在正常方式('LocationManager') – deuxdeux

+1

你可以偶爾運行此服務,GPS UTC與系統時間或FusedLocationApi – theWalker

+0

好主意,但我需要GPS的時間爲每一個報告的時間之間的數增量點 – deuxdeux

相關問題