目前,我正在开发一个将位置信息注入(inject) Android 的应用程序。此应用程序应在特定时刻注入(inject)位置。之前和之后,应该使用正常的GPS。
我的软件能够切换到模拟位置并成功注入(inject)位置。但我无法让 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?
最佳答案
我发现这是由于两个原因。
首先,不需要调用 setTestProviderEnabled(PROVIDER_NAME, false)
。其次,在查看Android源代码时,显示普通GPS不会自动激活。通过在 removeTestProvider()
调用之后请求位置更新,将激活正常的 GPS 信号并且一切正常。
关于android - 如何停止测试位置提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882412/