1

我有一个跟踪用户位置的应用程序。我的应用程序使用FusedLocationApiGoogle Play Services 获取设备位置的新方法。

我从 GPS 提供的位置提供者被标记为fused

由于应用程序用户可能会更改设备时间,因此从 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)
}
4

1 回答 1

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();
    // ....
}
于 2016-02-20T18:41:40.137 回答