代码之家  ›  专栏  ›  技术社区  ›  LoveForDroid

Mock协调安卓棉花糖

  •  0
  • LoveForDroid  · 技术社区  · 8 年前

    在我的应用程序中,我使用的是Android Location Manager API,我需要确定位置坐标是来自普通的Location Manager还是来自Fake(Mock)Location提供商。我用过 location.isFromMockProvider() 。打开假位置提供应用程序后,isFromMockProvider()方法将返回true。之后,不管我是否打开,假位置提供应用程序,打开或关闭isFromMockProvider()方法总是返回true。

    我发现一旦触发了FakeGPS应用程序,它就会覆盖位置管理器坐标,一旦我停止了FakeGPS应用程序,位置管理器就不会开始收集正确的坐标。

    我有什么遗漏吗。

    2 回复  |  直到 8 年前
        1
  •  0
  •   LoveForDroid    8 年前

    很失望没有回应,但我很高兴我成功了:) 发布决议,因为它可能会帮助其他人。

    一旦FakeGPS应用程序开始模拟位置,它就会停止我的应用程序的位置管理器。 现在,即使我停止FakeGPS应用程序模拟服务,我的应用程序的位置管理器也不会触发。 在删除任何测试提供程序并清除测试位置后,我必须检测事件并重新启动我的应用程序的位置管理器。

        2
  •  0
  •   GhostCat    7 年前

    只需重置和删除测试位置就可以了

     String t = LocationManager.GPS_PROVIDER;
     locationManager.clearTestProviderEnabled(t);
     locationManager.clearTestProviderLocation(t);
     locationManager.clearTestProviderStatus(t);
     locationManager.removeTestProvider(t);