繁体   English   中英

如何强制Android重新读取GPS位置?

[英]How enforce Android to re-read GPS position?

我尝试编写应用程序,该应用程序在单击按钮时显示GPS坐标。

@Override
public void onClick(View arg0) {
    EditText editText;
    editText = (EditText) findViewById(R.id.editText1);
    LocationManager locationManager;
    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Location location = locationManager.getLastKnownLocation("gps");
    editText.setText(location.toString());
}

问题:第一次使用GPS读取时间获得位置坐标时,第二次单击获得相同位置。 即使我停止程序并再次运行,它也会获得相同的位置! 如何强制刷新阅读GPS?

第一次我得到的位置坐标与GPS读取时间有关,第二次单击则获得相同的位置

这不足为奇。

即使我停止程序并再次运行,它也会获得相同的位置!

这也不足为奇。

如何强制刷新阅读GPS?

一般来说,您不需要。 不需要仅因为您请求最后一个已知位置就必须对设备进行全新更新。 提供新的位置定位信息在物理上可能是不可能的。 而且,如果您不调用requestLocationUpdates() ,则getLastKnownLocation()很可能仅返回null

您请求requestLocationUpdates()参数可能会影响设备尝试更新GPS的积极程度,而不是节省电量。 但是,没有任何保证。

在获取位置之前,请尝试使用此代码来获取可用于获取位置数据的最佳提供商。

Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);

并在您的getLastKnownLocation传递最佳的位置提供程序来获取这样的位置

 Location location = locationManager.getLastKnownLocation(bestProvider );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM