NETWORK_PROVIDER在Android版本4.0&以上/ API等级14&以上

时间:2012-04-06 06:38:49

标签: android

在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)。

我的问题是。

如何通过网络提供商或Android 4.0中的任何其他方法(不是GPS)获取位置以上?

3 个答案:

答案 0 :(得分:1)

Android 4.0框架有一个开放的问题,所以网络提供商不能正常工作,但最新的Android版本已经解决并成功运行,请在最新的android框架中检查你的代码。

答案 1 :(得分: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);

答案 2 :(得分:0)

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