Android 如何在GPS和网络提供商之间切换
我想问一下gps提供商的标准 看看我的代码:Android 如何在GPS和网络提供商之间切换,android,gps,Android,Gps,我想问一下gps提供商的标准 看看我的代码: private void initLocationManager() { locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); String bestProvider; locListener = new LocationListener() { @Override
private void initLocationManager() {
locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
String bestProvider;
locListener = new LocationListener() {
@Override
public void onLocationChanged(Location newLocation) {
tampilkanPosisikeMap(newLocation);
}
public void onProviderDisabled(String arg0) {
Functions.MakeToast(getApplicationContext(), "GPS tidak tersedia");
}
public void onProviderEnabled(String arg0) {
Functions.MakeToast(getApplicationContext(), "GPS tersedia");
}
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
}
};
// look here
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
bestProvider = locManager.getBestProvider(criteria, true);
locManager.getLastKnownLocation(bestProvider);
locManager.requestLocationUpdates(bestProvider, 5000, 1, locListener);
}
请看标准部分
它是这样工作的吗
如果不符合获得GPS_提供商的标准,
然后它将选择网络提供商作为提供商
是对还是错
谢谢
对不起,我的英语不好:(它确实应该是这样工作的。似乎是正确的
我曾经体验过,如果不知道最后一个已知的位置,“GetLastKnowLocation()”可能会返回null。但是,既然您没有将其存储在任何值中,为什么不从代码中删除该行?您不需要它…我只是删除了这一行
criteria.setAccuracy(Criteria.ACCURACY_FINE);
因此,它将从任何精度(从网络和gps提供商处)获得值
当我测试它时,它总是从网络提供商那里得到值
也许如果设备锁定了gps卫星位置,当我在设备上测试它时,它会从gps_提供程序获取值,获取坐标需要很长时间,我认为它没有选择网络提供程序。。。