当我打开我的应用并按下一个按钮时,我希望它仅从GPS请求单个位置,以获得最准确的位置。我进行了以下操作:
LocationManager mlocManager = (LocationManager)GetActivity().getSystemService(Context.LOCATION_SERVICE);
if (mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
LocationListener mlocListener = new LocationManagerHelper(...);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//accuracy fine calls accuracy high
mlocManager.requestSingleUpdate(criteria,mlocListener,null);
}
当我在室内打开GPS,走到窗户旁边,然后才按那个按钮时,我得到的位置距离我很远,精度为300-900!我以为可能再请求一次会改善情况,但即使是4-5次请求,仍然停留在同一个点上,精度依然很低。此外,其他请求非常快,好像并没有真正向GPS重新请求位置,而是从某种缓存中获取了位置信息。
如果我已经靠近窗户打开GPS,则位置更好,有时我可以达到20-30的精度。问题是,即使这样,精度有时也不太高,因此我想知道如何初始化GPS/位置,以便如果第一次尝试的精度不好,至少第二次尝试可以给我更好的结果。
谢谢。