我想在一小段时间内每秒接收一次位置更新,所以我写了这段代码:
public void registerListener() {
if (ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
} else {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, locationListener);
}
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.v(TAG, ""+longitude + " " +latitude);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
};
我从其他地方拨打registerListener()
。问题是,我的位置更新只调用一次,我只获得一次该日志。此外,在调用registerListener
之后,日志只有5到10秒。
谢谢,
Ruchir
答案 0 :(得分:2)
您正在申请GPS位置。首次获得卫星锁定需要几秒钟。如果您无法接收到信号锁(在室内某些建筑物,地下太远,手机受到物理损坏,如松散的天线(在早期的三星公司中常见)),可能永远不会发生。)
至于不再接收它 - 除非你移动至少10米,否则你不会再收到它。将其更改为0并且每秒都看到它。