我正在开发一个应用程序,它特别在移动时跟踪设备的位置。对于同一API调用,我在三星和HTC设备上获得不同操作系统版本的不同响应。
这是我的代码。
private static final long HUNDERE_METERS = 100; // in Meters
private static final long TWO_MIN = 60000*2; // in Milliseconds
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setBearingRequired(true);
criteria.setBearingAccuracy(Criteria.ACCURACY_HIGH);
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
String provider = mlocManager.getBestProvider(criteria, false);
mlocManager.requestLocationUpdates(provider, TWO_MIN, HUNDERE_METERS, mlocListener);
'三星GALAXY Nexus-4.1.1' 给出了每一个距离的位置更新由HUNDRED_METERS移动(100米),这是罚款。但在'HTC EVO 3D PG86100-4.0.3'中,GPS变为2分钟不可用,然后变为可用,每2分钟后会导致位置更新。
我修改了代码如下
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, TWO_MIN, HUNDERE_METERS, mlocListener);
现在HTC开始工作的罚款,并给予100米,但在三星GPS移动为每个距离的位置成为每2分钟不可用。
请建议使用什么参数调用requestLocationUpdates来获取距离移动距离的位置更新,距离应该适用于所有Android设备和操作系统。