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

3
首先,感谢您关注我的问题。
我计划设计一款Android GPS定位应用程序,以下是我的困难和情况:
1. 我的电脑硬件已经过时很长时间了,在调试期间运行Android模拟器真的需要很多时间。因此,我一周前购买了一台真实设备(Android手机)来替换模拟器进行调试。
2. 我知道如何通过“DDMS/模拟器控制/位置控制”向模拟器发送位置数据,但它在真实设备上被禁用。
3. 我正在室内编程,因此使用物理GPS定位功能是不可接受的(即使我打开了“a-gps”)。
4. 我在这里找到了另一个话题:Android模拟位置在设备上?但我无法打开详细链接,例如“Andrews链接”,“http://dehuysser.appspot.com/blog/android-developer-shell-released
我猜这些网站被我的国家禁止了......
以下是我的问题:
A. 我找到了一些制造虚假位置数据的代码,但这些代码不能激活“onLocationChanged”函数。然而,我想知道是否有一种方式可以通过USB端口从电脑发送定位数据到真实设备(我在USB调试模式下),就像从DDMS发送位置到模拟器一样?
B. 我得到了这样的信息,可以通过“telnet localhost ”向模拟器和真实设备发送“geo fix”命令,但如何检查我的真实设备所占用的端口号?我知道5554端口用于模拟器,但真实设备呢?我尝试在终端中使用“netstat”命令,但可惜我不知道哪个端口是我的Android手机......
C. 如果我的(A) (B)问题不切实际,那么“设置/应用/开发/允许模拟位置”是用来做什么的?
请帮帮我,谢谢您的回答!
2个回答

2
我已经为此编写了一个应用程序(手机默认没有此功能) - 它是开源的,并且提供与模拟器完全相同的接口(telnet到:5554并运行“geo fix ...”或“geo nmea”):在应用商店中称为MockGeoFix。 (Github地址) (Google Play地址) 请注意保留HTML标签。

1
使用模拟数据的最简单方法是使用模拟测试位置提供程序API。它位于文档页面的底部。我已经尝试过了,在onLocationChanged回调中接收到位置信息。这里有一些你可以尝试的代码。
adb使用的端口通常为5037。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接