【问题标题】:NETWORK_PROVIDER not worked in android versions 4.0 & above / API level 14 & aboveNETWORK_PROVIDER 不适用于 android 版本 4.0 及以上/API 级别 14 及以上
【发布时间】:2012-04-06 06:38:49
【问题描述】:

在 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)获取位置?

【问题讨论】:

    标签: android


    【解决方案1】:

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

    【讨论】:

    • 能否提供这个问题的链接?
    【解决方案2】:

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

    仅使用您从 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);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 1970-01-01
        • 2018-08-10
        相关资源
        最近更新 更多