【问题标题】:How to stop test location provider如何停止测试位置提供程序
【发布时间】:2012-08-09 11:29:38
【问题描述】:

目前,我正在开发一个将位置注入 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?

【问题讨论】:

    标签: android gps mocking location


    【解决方案1】:

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

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

    【讨论】:

    • 所以解决方案什么也没做?只是没有发送新的测试地点?
    • 不,它在注册一个新的位置监听器后再次起作用。然后真正的 GPS 将再次用于位置更新。
    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多