2013-02-05 47 views
1

我從GPS獲取當前日期和時間,但它給了我日期前3天的當前日期。在MyLocationListener類中loc.getTime();給我日期前3天目前的日期。我正在使用的代碼GPS在Android中給出錯誤的日期和時間

public class Location_gps extends Activity 
{ 
Button btn; 
LocationManager mlocManager; 
LocationListener mlocListener; 
Location loc; 
SimpleDateFormat sdf; 
Date d; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_location_gps); 

    btn = (Button)findViewById(R.id.btn); 

    /* Use the LocationManager class to obtain GPS locations */ 
    mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 

    mlocListener = new MyLocationListener(); 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

    loc = mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

    sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); 
d = new Date(loc.getTime()); 


    btn.setOnClickListener(new OnClickListener() 
    { 
    @Override 
    public void onClick(View v) 
    { 
    String Text = "My current location is: " + 
     "\nLatitude = " + loc.getLatitude() + 
     "\nLongitude = " + loc.getLongitude() + 
     "\nAccuracy = " + loc.getAccuracy() + 
     "\nAltitude = " + loc.getAltitude() + 
     "\nProvider = " + loc.getProvider() + 
     "\nTime = " + sdf.format(d); 

Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 
    } 
}); 

} 

public class MyLocationListener implements LocationListener 
{ 

    @Override 
    public void onLocationChanged(Location loc) 
    { 

    loc.getLatitude(); 
    loc.getLongitude(); 

    String Text = "My current location is: " + 
    "\nLatitude = " + loc.getLatitude() + 
    "\nLongitude = " + loc.getLongitude() + 
    "\nAccuracy = " + loc.getAccuracy() + 
    "\nAltitude = " + loc.getAltitude() + 
    "\nTime = " + loc.getTime(); 

    Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onProviderDisabled(String provider) 
    { 
    Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onProviderEnabled(String provider) 
    { 
    Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); 
    } 

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

    } 
} 
} 

我如何從GPS獲取當前的日期和時間。請幫幫我。

回答

2

當您使用「getLastKnownLocation」方法時,它將返回自接收位置更新以來的最後一個參數。

loc = mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

如果您的設備最近沒有收到更新,它將返回最近3天內的更新。如果它無法接收GPS更新,請檢查您的「GPS」是否啓用或在露天試用。