GPS или сетевую временную метку можно получить с помощью LocationListener в Android Location API.
См. Проект GPSTest с открытым исходным кодом для полностью работающего примера: https://github.com/barbeau/gpstest
Вы можете запросить прослушивание обновлений сетевого расположения:
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
или обновления местоположения GPS:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
Затем, когда местоположение передается в метод LocationListener.onLocationChanged, вы можете прочитать отметку времени из этого местоположения:
@Override
public void onLocationChanged(Location location) {
Log.i("Timestamp", "New timestamp: " + location.getTime());
}
Другим вариантом является отправка запроса на сервер NTP, который полностью независим от устройства и сотовой сети.
См. Этот пост для получения подробной информации о реализации клиента NTP:
использование службы ntp