大家好,
我熟悉通过使用geo fix long lat altitude
命令来将GPS信息伪造到模拟器中的能力,当通过模拟器连接时。
我想做的是,在可能与 Android 设备不同的计算机上运行模拟,产生应该发送到 Android 设备的纬度、经度和高度数据,以使模拟器误认为已收到 GPS 更新。
我看到了各种解决方案用于脚本化 Telnet 会话;它似乎是最佳解决方案的伪代码:
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")