我有这样的代码,以获得最好的供应商Android开位置
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String provider = lm.getBestProvider(criteria, true);
Location mostRecentLocation = lm.getLastKnownLocation(provider);
if(mostRecentLocation != null) {
latid=mostRecentLocation.getLatitude();
longid=mostRecentLocation.getLongitude();
}
lm.requestLocationUpdates(provider, 1, 0, locationListener);
,然后听众
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
latid = loc.getLatitude();
longid = loc.getLongitude();
// if(loc.hasAccuracy()==true){
accuracyd = loc.getAccuracy();
String providershown = loc.getProvider();
accuracy.setText("Location Acquired. Accuracy:"
+ Double.toString(accuracyd) + "m\nProvider: "+providershown);
accuracy.setBackgroundColor(Color.GREEN);
// }
userinfo=usernamevalue+"&"+Double.toString(latid)+"&"+Double.toString(longid);
submituserlocation(userinfo);
}
}
当我测试它的设备(HTC Magic的)我发现当gps被禁用时,它立即从网络锁定。当我启用GPS时,它不接收来自网络的任何数据,并等待它从GPS锁定。
我想锁定的位置,如谷歌地图,直到他们有一个很好的GPS信号,他们使用网络来确定我的位置。
我虽然最好的标准会这样做,但他们所做的是挑一个提供商一次。
是否有我的代码有问题,或者我必须做线程和超时等,使其发生?
spagi代码帮助我大大 - 无处在Android开发人员网站是它解释了如何获得最好的供应商。一些设备可能有GPS,一些GSM,一些WiFi。 – 2011-02-16 06:38:23
这是一篇非常有趣的Google文章:http://developer.android.com/training/basics/location/currentlocation.html – shkschneider 2012-10-16 09:30:07