5

在 android 4.0 及更高版本中调用

LocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener)

给出例外

引起:java.lang.IllegalArgumentException:provider=network。

即使启用了网络,也会发生同样的异常。

我知道这是一个报告的问题(http://code.google.com/p/android/issues/detail?id=19857)。

我的问题是。

如何通过网络提供商或任何其他方法(不是 GPS)在 android 4.0 及更高版本中获取位置?

4

3 回答 3

1

android 4.0 框架存在一个未解决的问题,因此网络提供商无法正常工作,但最新的 android 版本已解决并成功运行,请检查您在最新 android 框架中的代码。

于 2012-10-25T07:34:17.030 回答
0

不要使用直接提供程序字符串,因为不能保证它会在运行时存在。

仅使用从 LocationManager 获得的提供程序,如下所示:

    LocationManager locationManager = (LocationManager)context.getSystemService( Context.LOCATION_SERVICE );

    Criteria criteria = new Criteria();
    criteria.setAccuracy( Criteria.ACCURACY_COARSE );
    String provider = locationManager.getBestProvider( criteria, true );

    if ( provider == null ) {
        Log.e( TAG, "No location provider found!" );
        return;
    }

    lastLocation = locationManager.getLastKnownLocation(provider);
于 2012-08-28T04:45:56.690 回答
0

是的,此支持适用于您可以检查的较新版本。

于 2012-10-25T09:36:20.413 回答