【问题标题】:LocationManager.NETWORK_PROVIDER in API 9 and 10 in AndroidAndroid 中 API 9 和 10 中的 LocationManager.NETWORK_PROVIDER
【发布时间】:2014-06-01 03:38:45
【问题描述】:

我正在尝试使用 API 9 和 10(2.3 和 3.0 以下)的 LocationManager.NETWORK_PROVIDER。如果 Internet(无线或数据)关闭,它无法获取纬度/经度值?不知道为什么?

它在 android 4.0 及更高版本上运行良好。

我正在使用以下内容:

locationListenerForNetwork  = new MyLocationListenerForNetwork();
location.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerForNetwork );


private class MyLocationListenerForNetwork implements LocationListener 
 {
    @Override
    public void onLocationChanged(Location loc) 
    {
                 //I do what I required in this place..
            }
   }
}

有人遇到过同样的问题吗?

【问题讨论】:

  • 你能显示更多代码吗?您是否尝试在 location.requestLocationUpdates() 上使用另一个构造函数?
  • 我没有任何东西可以调用位置监听器。正如我之前所说,它在 Android 4.0 及更高版本上运行良好,为什么不能在 Android 2.3 版本上运行......

标签: android android-location


【解决方案1】:

尝试使用不同的参数调用 requestLocationUpdates()。

让你的类实现 LocationListener, GooglePlayServicesClient.ConnectionCallbacks 和 GooglePlayServicesClient.OnConnectionFailedListener 并添加来自这些接口的方法(onConnectionFailed(ConnectionResult connectionResult)onConnected()onDisconnected())。

然后,创建一个 LocationRequest 和一个 LocationClient:

 // Create a new global location parameters object
    LocationRequest mLocationRequest = LocationRequest.create();

    /*
     * Set the update interval
     */
    mLocationRequest.setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS);

    // Use high accuracy
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    // Set the interval ceiling to one minute
    mLocationRequest.setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS);

    /*
     * Create a new location client, using the enclosing class to
     * handle callbacks.
     */
    LocationClient mLocationClient = new LocationClient(this, this, this);

最后,调用获取更新请求:

mLocationClient.requestLocationUpdates(mLocationRequest, this);

希望对你有所帮助。

【讨论】:

  • 您好,您能解释一下为什么我们需要具有不同参数的 requestLocationUpdates() 吗?我的问题我在使用网络提供商时无法获取 LatandLong(仅当无线网络/数据(Internet)被禁用时)
  • @TheDevMan 如果你尝试,也许你会解决你的问题。您还可以使用 getLastKnownLocation() 来获取您最后收到的 LatLng 值。
猜你喜欢
  • 2021-02-21
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
相关资源
最近更新 更多