【问题标题】:I have "network" location provider but got : Provider "network" unknown, why?我有“网络”位置提供商,但得到:提供商“网络”未知,为什么?
【发布时间】:2013-11-01 11:42:22
【问题描述】:

我有一个AndroidTestCase,我在装有 Android 4.1.2 操作系统的真实设备上运行我的测试。

public class MyLocationTest extends AndroidTestCase{
  private String TEST_PROVIDER = LocationManager.NETWORK_PROVIDER;

  @Override
  public void setUp() throws Exception{
     super.setUp();

     mLocationManager = (LocationManager) getContext()
                                 .getSystemService(Context.LOCATION_SERVICE);

     //I check what are the providers available, 
     //the log shows me: network, gps, passive
     List<String> providers = mLocationManager.getAllProviders();
     for(int i=0; i<providers.size(); i++){
        Log.i("DEBUG", "Provider: "+providers.get(i));
     }

    //The following code raise Exception: java.lang.IllegalArgumentException: Provider "network" unknown
    mLocationManager.setTestProviderEnabled(TEST_PROVIDER, true);
    mLocationManager.setTestProviderStatus(TEST_PROVIDER, LocationProvider.AVAILABLE, null, System.currentTimeMillis());
  }

}

在上述测试用例的setUp() 阶段,我检查了可用的提供程序,并在日志中获得了“network”。然后,我调用 setTestProviderEnabled(TEST_PROVIDER, true) ,但我得到了 Exception: java.lang.IllegalArgumentException: Provider "network" unknown

我不明白为什么?我有“网络”提供商,但我得到了这个例外......

顺便说一句,我在设备上启用了“允许模拟位置”,还连接了 wifi 网络。

【问题讨论】:

    标签: android android-intent android-location


    【解决方案1】:

    您需要创建一个模拟位置提供程序并将其添加到活动提供程序。

    mLocationManager.addTestProvider(TEST_PROVIDER, false, 
    false, false, false, false, true, true, 0, 5);
    // your code
    mLocationManager.setTestProviderEnabled(TEST_PROVIDER, true);
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多