NETWORK_PROVIDER未返回或正在工作

时间:2013-11-17 06:22:05

标签: android networking location location-provider

我想在任何地方找到设备的当前位置。以下代码在户外可以正常工作,但在室内不会通知更新。

下面的代码无法访问NETWORK_PROVIDER,只返回GPS_PROVIDER和PASSIVE_PROVIDER,为什么?同一设备中的其他应用可以在室内找到我的位置。

if ( mLocationManager==null )
    mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Location l;
for ( String provider : mLocationManager.getAllProviders() ){
    mLocationManager.requestLocationUpdates(provider, 1000, 1, locationListener);
    l = mLocationManager.getLastKnownLocation(provider);
    if ( isBetterLocation(l, currentBestLocation) )
    currentBestLocation = l;
}

当我将其更改为硬编码的NETWORK_PROVIDER时:

    if ( mLocationManager==null )
    mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Location l;
List<String> providers = new ArrayList<String>();
providers.add(LocationManager.GPS_PROVIDER);
providers.add(LocationManager.NETWORK_PROVIDER);
//  for ( String provider : mLocationManager.getAllProviders() ){
for ( String provider : providers ){
    mLocationManager.requestLocationUpdates(provider, 1000, 1, locationListener);
    l = mLocationManager.getLastKnownLocation(provider);
    if ( isBetterLocation(l, currentBestLocation) )
    currentBestLocation = l;
}

抛出以下异常:

11-17 14:06:13.145: E/AndroidRuntime(7896): Caused by: java.lang.IllegalArgumentException: provider=network

0 个答案:

没有答案