如何通过Delphi Android编程在我的移动设备上获取GPS / glonas / baido卫星的当前日期时间?
此时我可以从位置传感器获得经度和纬度。
CButton
我知道使用GSM网络的时间比较容易,但我的情况下没有可用的移动网络。
这有可能吗?
答案 0 :(得分:1)
当您从提供的framware连接位置传感器时,它只提供位置数据
但您可以获取原始数据并获取时间数据
FYI
因为手机公司在其产品上使用了chap gps硬件,输出数据的准确度较低
例如,数据以1Hz的速率采样,因此您获得的最佳值是精确度1秒:
使用此代码:
procedure TForm1.Button1Click(Sender: TObject);
var
LocationManagerService: JObject;
location : JLocation;
begin
if not Assigned(FLocationManager) then
begin
LocationManagerService := SharedActivityContext.getSystemService(TJContext.JavaClass.LOCATION_SERVICE);
FLocationManager := TJLocationManager.Wrap((LocationManagerService as ILocalObject).GetObjectID);
if not Assigned(locationListener) then
locationListener := TLocationListener.Create(self);
FLocationManager.requestLocationUpdates(TJLocationManager.JavaClass.GPS_PROVIDER, 10000, 10, locationListener,
TJLooper.JavaClass.getMainLooper);
end;
location := FLocationManager.getLastKnownLocation(TJLocationManager.JavaClass.GPS_PROVIDER);
Memo1.Lines.Add(location.getTime.ToString);
end;
此输出类似于1505216957000
时间戳,但由于精度较低,最后3位数始终为0,因此您必须从最后一位数字中删除000
,然后将其转换为您的时区
答案 1 :(得分:1)
这不是GPS网络时间。它是GPS接收器的最后一个有效位置 FIX ,可能是不久前的。