我目前正在使用GPS来获取用户的当前位置以返回某些结果。和比利时一样,如果你在里面,大多数时候你都无法获得GPS连接。所以我想通过wifi连接获取当前位置。
我找到了这个例子:get the current location (gps/wifi) 但是
我不确定哪条线告诉设备选择哪个连接。我猜这是这个:String provider = myLocationManager.getBestProvider(criteria,true);
我要添加到我的代码中。
当我检查其中的内容时,我总是得到一个空值,我不太明白为什么。
我的代码目前看起来像这样:
public void getOwnLngLat(){
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
final LocationListener locationListener = new LocationListener(){
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
longitude="" + location.getLongitude();
latitude="" + location.getLatitude();
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), true), 2000, 10, locationListener);
}
答案 0 :(得分:3)
您正在使用locationmanagers getbestprovider方法,该方法只是获取最符合您条件的任何位置提供者。 如果您想获得特定的位置提供程序,请使用getProvider方法。该参数应该是getProviders方法的结果之一。 一些链接: http://developer.android.com/guide/topics/location/obtaining-user-location.html http://developer.android.com/reference/android/location/LocationManager.html
答案 1 :(得分:2)
如果您想从特定提供商处获取更新,可以使用
LocationManager
的{{3}}方法。可以使用requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
方法获取可用提供商列表。