在模拟器上获取GPS信息时,使用Location loc= LocationManager.getLastKnownLocation("gps");来获取location信息,但是往往在调试中loc是null的,因为首先需要在模拟器中手动添加GPS信息,有两种手动添加方法
1、在eclipse下,windows-->open perspective-->DDMS-->Emulator control-->Manual下手动设置经纬度,并按send按钮。这是网上说的最多的一种方法,可是很遗憾,我用这种无效。
2、后来发现在cmd下也可以手动添加信息,试了试发现就成功了。
(1)首先打开模拟器,然后运行cmd,输入telnet localhost 5554(注:5554是模拟器在本机的端口,有可能不一样哈,具体端口号,模拟器左上方有显示的),这样会出现
Android Console: type 'help' for a list of commands
OK的字样。
如果是使用WIN7的朋友,控制台可能会提示telnet无效什么的,那是因为WIN7下默认是不出现telnet的,需要手动打开。具体为:[1]控制面板-->程序-->打开或关闭Windows功能,然后将Telnet服务器和Telnet客户端勾选上。[2]然后在管理工具-->服务中手动启动Telnet
(2)使用geo命令模拟发送GPS信号:
geo fix 经度 纬度
(3)这时就会发现在模拟器的状态栏上多了一个GPS的标志~再使用Location loc = LocationManager.getLastKnownLocation("gps");就能获取到该坐标的位置了~~
如何使用geo命令模拟发送GPS信号:
运行模拟器后,在cmd里,
先telnet localhost 5554
再
geo fix 121.473704 31.230393
在Android模拟器上获取GPS位置信息时,通常使用LocationManager.getLastKnownLocation("gps"),但若loc返回null,需手动添加GPS数据。通过Eclipse的DDMS手动设置方法可能无效,但在CMD中使用telnet命令可以成功实现。步骤包括:连接模拟器的端口(如5554),启用telnet服务(在Windows 7中可能需要手动开启),然后使用`geo fix 经度 纬度`命令发送GPS信号。完成这些步骤后,模拟器状态栏会显示GPS图标,并能通过Location Manager获取到模拟的位置信息。
859

被折叠的 条评论
为什么被折叠?



