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?

4

1 回答 1

2

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

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

于 2012-08-09T14:08:36.193 回答