服务中的纬度和经度返回0.0

时间:2017-12-25 04:19:40

标签: java android android-service latitude-longitude

我是 Android应用程序开发的初学者。我会在每5分钟从GPSTracker.class获得纬度经度,以便在下一步中发送到 SQLite DB ,但是当我调用{{ 1}}
它返回纬度= 0.0 经度= 0.0

请帮助我

这是我的代码

GPSTracker.class

enter image description here

2 个答案:

答案 0 :(得分:1)

  

融合位置提供商是Google Play服务中的位置API,可智能地组合不同的信号,以提供您的应用所需的位置信息。

融合位置提供商管理底层定位技术,例如GPS和Wi-Fi,并提供一个简单的API,您可以使用它来指定所需的服务质量。例如,您可以请求最准确的数据,或者尽可能获得最佳精度,而无需额外的功耗。

Last Known Location

Receiving Location Updates

答案 1 :(得分:0)

此代码

    locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER,
            MIN_TIME_BW_UPDATES,
            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
    Log.d("GPS Enabled", "GPS Enabled");
    if (locationManager != null) {
        locations = locationManager
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
        if (locations != null) {
            latitude = locations.getLatitude();
            longitude = locations.getLongitude();
        }
    }

需要重构。当您拨打LocationManager.requestUpdates()时,您要求LocationManager在GPS位置更新时回拨您的应用。这将在稍后的某个时间(将来)发生,具体取决于手机使用GPS确定其位置所需的时间。对LocationManager.getLastKnownLocation()的调用只会返回最后一个"已知"位置,它还没有。

一旦您请求了位置更新,您的应用将通过GPS数据回拨。框架将调用方法onLocationChanged()。您目前在该方法中没有代码,因此在调用该方法时您将无法执行任何操作。