2012-08-09 52 views
3

目前,我正在开发一个将位置注入Android的应用程序。此应用程序应该在特定时刻注入位置。之前和之后,应该使用普通的GPS。如何停止测试位置提供者

我的软件能够切换到模拟位置并成功注入位置。但我无法让Android再次听到正常的GPS。

我的代码来设置:

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
mLocationManager.addTestProvider(LocationManager.GPS_PROVIDER, false, false, false, false, true, true, true, 0, /*magic*/5); 
mLocationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true); 

我没有试图阻止:

mLocationManager.setTestProviderEnabled(PROVIDER_NAME, false); 
mLocationManager.removeTestProvider(PROVIDER_NAME); 

我的问题:如何停止提供模拟地点和恢复默认的Android GPS?

回答

2

我发现这是由于两个原因。

首先,不需要setTestProviderEnabled(PROVIDER_NAME, false)调用。其次,在查看Android源代码时,它显示普通GPS不会自动激活。通过在拨打removeTestProvider()之后请求位置更新,正常的GPS信号将被激活并且一切正常。

+0

那么解决方案什么都不做?只是不发送新的测试位置? – user1940676 2014-01-06 14:14:43

+0

不,它在注册新的位置侦听器后再次运行。然后,真实的GPS将再次用于位置更新。 – Jordi 2014-01-08 23:53:00