Android-为发送GPS轨迹编写telnet会话脚本

Android-为发送GPS轨迹编写telnet会话脚本,android,geolocation,telnet,Android,Geolocation,Telnet,全部, 我熟悉通过仿真器连接时,通过使用geo-fix long-lat-althip命令向仿真器伪造GPS信息的能力 我想做的是让一个模拟在另一台计算机上运行,可能产生纬度,长度,高度,应该发送到Android设备,让模拟器误以为它收到了GPS更新 我看到了各种解决方案;在伪代码中,似乎最好的解决方案是: while true: if position update generated / received open subprocess and call "echo

全部,

我熟悉通过仿真器连接时,通过使用
geo-fix long-lat-althip
命令向仿真器伪造GPS信息的能力

我想做的是让一个模拟在另一台计算机上运行,可能产生纬度,长度,高度,应该发送到Android设备,让模拟器误以为它收到了GPS更新

我看到了各种解决方案;在伪代码中,似乎最好的解决方案是:

while true:
    if position update generated / received
        open subprocess and call "echo 'geo fix lon lat altitude' | nc localhost 5554"
这看起来像是一个大黑客,尽管它在Mac电脑(而不是Windows)上工作。有更好的方法吗?(我无法提前生成轨迹并将其作为路径输入;Android系统是实时模拟的一部分,但在模拟器上运行时没有位置更新。另一个系统负责计算这些位置更新)

编辑: 另一种可能更干净的方法是使用python的telnetlib库

import telnetlib
tn = telnetlib.Telnet("localhost",5554)
while True:
    if position update generated / received
        tn.write("geo fix longitude latitude altitude\r\n")

也许这就是你想要的

Netcat(上面例子中的nc)几乎可以编译任何东西,包括windows和android本身

简而言之,这看起来不像是一个破解的解决方案,它看起来像是一个非常传统的unix脚本风格的解决方案,可以轻松地在任何现代平台上工作


如果你不喜欢为每个补丁打开一个新的连接,你应该能够编写一个程序,生成标准输出的补丁,并将其导入netcat。

netcat非常适合这样做——除了while(true)loop正在烧坏CPU之外——当然在手机上没有人会在意,尽管如此,while循环几乎肯定包括一个定时的更新速度,很可能是通过回调、阻塞I/O或睡眠机制来完成的。虽然最终这是关于一个测试系统,而不是一个需要交互可用或电池供电的系统。