使用模拟位置时,onLocationChanged()执行两次

时间:2019-02-18 05:05:04

标签: android mock-location

在我的应用中,我想检测用户是否在嘲笑位置。 在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);

0 个答案:

没有答案