通过 DDMS 在 Android 设备上模拟模拟位置

Posted

技术标签:

【中文标题】通过 DDMS 在 Android 设备上模拟模拟位置【英文标题】:Simulate Mock Location on Android Device via DDMS 【发布时间】:2012-07-14 23:36:21 【问题描述】:

我有一个适用于 android 2.3.3 的 GPS 导航应用程序,我一直在开发它。我目前正在尝试通过 DDMS 通过 GPX 文件模拟位置。虽然这可以在 android 模拟器上完美找到,但我无法让它在实际设备上运行。

我可以在“设备”标签下看到设备,但我无法发送任何模拟位置数据或 GPX 数据,因为“仿真控制”标签下的选项是灰色的。

我注意到之前关于 *** 的问题提到这是不可能的,但是标题为“使用 DDMS”的 Google 文档 - http://developer.android.com/tools/debugging/ddms.html 声明如下(在页面底部)

设置手机位置

如果您的应用程序取决于手机的位置,您可以拥有 DDMS 向您的设备或 AVD 发送一个模拟位置。这很有用,如果你 想要测试应用程序特定位置的不同方面 无需物理移动的功能。以下地理位置数据 类型可供您使用:

我只是想知道如何通过 DDMS 向设备发送虚假位置数据。 提前感谢您的帮助,我真的很感激。

【问题讨论】:

在我的手机上的开发者选项中有一个接受模拟位置的配置。我不知道你的手机有没有,如果有,请尝试启用它。 @Yury:感谢您的及时回复。我已经设置了该配置以及 ACCESS_MOCK_LOCATION 权限。根据我所听到/阅读的内容,它只允许您使用 setTestProviderLocation(..) 方法从应用程序本身创建模拟位置(我可能是错的) 【参考方案1】:

Bilzac,你的理解是正确的。简而言之,Android 的文档具有误导性。许多开发人员对此感到困惑。您不能像在模拟器上那样加载 gpx 文件并发送到设备,这与文档的建议相反。

【讨论】:

【参考方案2】:

如果您在设备上激活模拟位置,则可能。 比将 ACCESS_MOCK_LOCATION 权限添加到您的清单。

您现在可以编写自己的 MockLocationManager 来生成 mocj 位置。

最简单的方法是使用为您生成模拟 lactions 的应用。 GPS Route Simulator 工作得很好。可以在 sdCard 上存储 kml 文件或定义自己的路线

【讨论】:

以上是关于通过 DDMS 在 Android 设备上模拟模拟位置的主要内容,如果未能解决你的问题,请参考以下文章

android调试工具adb命令大全

android模拟器是不是足以进行调试?

adb shell 命令详解

Android Studio中怎么使用DDMS工具

Android Studio - 启动时自动启动 DDMS 和模拟器,并在 DDMS 中自动清除 logcat

AndroidDDMS是啥?