如何将“geo fix”命令发送到 Android 的真实设备?

Posted

技术标签:

【中文标题】如何将“geo fix”命令发送到 Android 的真实设备?【英文标题】:How to send "geo fix" command to real device of Android? 【发布时间】:2011-08-08 08:12:05 【问题描述】:

首先,感谢您对我的问题的关注

我正在计划设计一个 android GPS 定位应用程序

这是我的困难和情况

(1)我的电脑硬件已经过时了,运行一个android模拟器调试真的很费时间,所以我一周前买了一个真正的设备(android手机),目的是更换调试中的模拟器

(2)我知道如何通过“DDMS/Emulator Control/Location Controls”将位置数据发送到模拟器,但是对于真实设备它是禁用的

(3)我在室内编程,所以不能使用物理gps定位功能(即使我打开“a-gps”)

(4)我在这里找到了另一个话题:Android mock location on device? 但是,我无法打开详细链接,例如“安德鲁斯链接”、“http://dehuysser.appspot.com/blog/android-developer-shell-released”

我猜这些网站是我国禁止的......


这是我的问题:

(A)我找到了一些制作模拟定位数据的代码,但是这些代码无法激活“onLocationChanged”功能

但是,我想知道是否有一种方法可以通过 USB 端口将定位数据从 PC 发送到真实设备(我处于 USB 调试模式),就像从 DDMS 发送位置到模拟器一样?

(B)我得到的信息是,可以通过“telnet localhost”向模拟器和真实设备发送“geo fix”命令,但是如何检查被占用的端口号我的真实设备?

我知道5554端口是用来做模拟器的,但是真机呢?

我尝试在终端中命令“netstat”,但很遗憾我不知道我的安卓手机是哪个端口......

(C)如果我的(A)(B)问题不实用,那么“设置/应用程序/开发/允许模拟位置”是做什么用的?

请帮帮我,谢谢你的回答!

【问题讨论】:

【参考方案1】:

我为此编写了一个应用程序(默认情况下,此功能在手机上不可用)-它是open source,并提供与模拟器完全相同的界面(telnet 到:5554 并运行“geo fix ...”或“geo nmea”):在应用商店MockGeoFix

【讨论】:

【参考方案2】:

使用模拟数据的最简单方法是使用模拟测试位置提供程序 API。它位于documentation page 的底部。我已经尝试过了,并且在 onLocationChanged 回调中收到了位置。 Here 是一些您可以尝试的代码。

adb使用的端口一般是5037。

【讨论】:

以上是关于如何将“geo fix”命令发送到 Android 的真实设备?的主要内容,如果未能解决你的问题,请参考以下文章

Geo Fix 命令未通过高度

Geo Fix 在 Android SDK 2.2 中不起作用

如何将数据从服务器发送到Android?

如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?

Android - 将 HDMI CEC 命令发送到电视 - minix - libCEC

如何将json从android发送到php?