【发布时间】:2011-01-23 07:02:29
【问题描述】:
我正在调用该方法并期望多次更新位置:
locationManager.requestLocationUpdates("gps",0 ,0, loc_listener);
我的loc_listener 定义为:
LocationListener loc_listener = new LocationListener() {
private final String TAG = "xoxoxo.LocationListener";
public void onLocationChanged(Location l) {
Intent locationAlert = new Intent("xoxoxo.LOCATION_CHANGED")
.putExtra("target_location", l);
sendBroadcast(locationAlert);
// locationManager.requestLocationUpdates("gps", 0 ,0, this);
}
public void onProviderEnabled(String p) {
Log.i(TAG, "Provider enabled");
}
public void onProviderDisabled(String p) {
Log.i(TAG, "Provider disabled");
}
public void onStatusChanged(String p, int status, Bundle extras) {
Log.i(TAG, "Status changed");
}
};
按原样定义,我只会在 HTC Evo 2.2 和 2.2 + Google API 模拟器上获得一次更新。 获得多个更新的技巧是取消注释每次更新时注册更新的行:
locationManager.requestLocationUpdates("gps", 0 ,0, this);
你们见过这样的吗?
【问题讨论】:
-
您可以使用 NETWORK_PROVIDER 快速定位...
-
我的应用程序只需要很好的位置。没有它,很多功能都会丢失。
-
对于 gps 提供商,您需要开阔的天空条件,以便它可以非常快速准确地更新,但如果您在建筑物内,您需要实施网络提供商,因为至少要获得不太准确的更新位置与 GPS 相比。
-
阿南德,我又不能使用网络位置。用户总是在外面。