Android 我有;“网络”;位置提供者但得到:提供者“;“网络”;不知道,为什么?

Android 我有;“网络”;位置提供者但得到:提供者“;“网络”;不知道,为什么?,android,android-intent,android-location,Android,Android Intent,Android Location,我有一个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(); m

我有一个
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());
  }

}
公共类MyLocationTest扩展了AndroidTestCase{
专用字符串测试\u提供程序=LocationManager.NETWORK\u提供程序;
@凌驾
public void setUp()引发异常{
super.setUp();
mLocationManager=(LocationManager)getContext()
.getSystemService(Context.LOCATION\u服务);
//我检查哪些供应商可用,
//日志显示:网络、gps、被动
List providers=mLocationManager.getAllProviders();

对于(int i=0;i您需要创建一个模拟位置提供程序,并将其添加到活动提供程序中

mLocationManager.addTestProvider(TEST_PROVIDER, false, 
false, false, false, false, true, true, 0, 5);
// your code
mLocationManager.setTestProviderEnabled(TEST_PROVIDER, true);
希望这有帮助