模拟坐标 Android Marshmallow

Posted

技术标签:

【中文标题】模拟坐标 Android Marshmallow【英文标题】:Mock coordinates Android Marshmallow 【发布时间】:2016-10-10 06:43:33 【问题描述】:

在我的应用程序中,我使用的是 android 位置管理器 API,并且我需要确定位置坐标是来自普通位置管理器还是来自假(模拟)位置提供程序。我用location.isFromMockProvider()。一旦我打开提供虚假位置的应用程序,isFromMockProvider() 方法就会返回 true。之后,无论我是否打开,提供虚假位置的应用程序,打开或关闭 isFromMockProvider() 方法始终返回 true。

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

我有什么遗漏的吗?

【问题讨论】:

【参考方案1】:

对没有回应感到失望,但我很高兴我让它工作了 :) 发布决议,因为它可能对其他人有所帮助。

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

【讨论】:

【参考方案2】:

只是重置和删除测试位置应该会有所帮助

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

【讨论】:

以上是关于模拟坐标 Android Marshmallow的主要内容,如果未能解决你的问题,请参考以下文章

android - 在设备模拟器上更改 gps 坐标

使用 Android Studio 在模拟器中设置 GPS 位置

Android模拟点击

使用加速度计读取 android 手机的 x y z 坐标

Android模拟器设置gps地理位置

android Dialog如何实现点击某一处,Dialog就显示地那个地方?