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

时间:2011-04-19 03:00:04

标签: android device geo

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

我打算设计Android GPS定位应用程序

这是我的困难和情况

(1)我的计算机硬件已经过时了很长时间并且运行一个用于调试的android模拟器实际上耗费时间,因此我在一周前购买了一个真正的设备(Android手机),目的是更换调试过程中的模拟器

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

(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”,但是说我不知道​​哪个端口适用于我的Android手机真是遗憾......

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

adb使用的端口通常为5037。