在我的应用中,我想检测用户是否在嘲笑位置。
在onLocationChanged()
中,我具有登录功能,该功能对用户进行身份验证并将纬度和经度存储到数据库中。
我检查功能是否已启用模拟位置的功能也在这里。
我只需要提取一次位置,因此我使用了locationManager.removeUpdates(this)
。
但是当我测试启用模拟位置时,onLocationChanged()
叫了两次,我不知道为什么。
这是我的代码:
final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
String lat = String.valueOf(location.getLatitude());
String lon = String.valueOf(location.getLongitude());
locationManager.removeUpdates(this);
mockEnabled = isMockEnabled(getApplicationContext(), location);
login(userId, password, inDate, inTime, lat, lon);
Log.v("MOCK_STATUS", "ENABLED");
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);