2013-10-23 72 views
-1

我有一個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()階段,我查了可用的供應商,並在日誌中得到「網絡」。然後,我調用setTestProviderEnabled(TEST_PROVIDER, true),但我得到異常:java.lang.IllegalArgumentException:Provider「network」unknown

我不明白爲什麼??我有「網絡」提供商,但我得到了這個例外...

順便說一句,我已啓用設備上的「允許模擬位置」,也有WiFi網絡連接。

回答

2

您需要創建一個模擬位置提供程序並將其添加到活動提供程序。

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

希望這會有所幫助。