欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

在Android模拟器上模拟GPS功能总是null的解决方法

程序员文章站 2023-08-12 20:18:37
我们都知道,在我们开发时需要在模拟器上模拟gps,可在location的时候总是null,上网查了一下,发现如下解决: 网上大侠的解决方案: 在模拟器上获取gps信息时,使...
我们都知道,在我们开发时需要在模拟器上模拟gps,可在location的时候总是null,上网查了一下,发现如下解决:

网上大侠的解决方案:
在模拟器上获取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");就能获取到该坐标的位置了~~
我实际操作了一下,发现还是报告错误,还是没有出现gps小指示图标,不知道是什么原因.上面的解决方案给了我提示,我觉得是模拟器没有开启gps,在系统设置中启用也没有效果.后来我在模拟器上干脆直接运行google map,这次出现了gps指示图标,再调用获得location的方法就可以了,还要注意,必须指定用gps来定位,如果是别的方式还是会报告错误