这个问题也困扰我很久,为什么之前用模拟器测试有时可以成功有时却失败,而使用真机测试却从来没有成功,很是郁闷
首先大家应该记得下面一段代码的作用:
通过上面的程序我们获得了最佳的服务提供方式,可是经过我多次实验发现每次获得的最佳提供者都是GPS方式,这就意味之后我们操作获取位置时使用过GPS方式获取的,那么接着我们通常是如下面方式获取位置的
注意上面的getLastKnownLocation方法,这个方法的意思是获取上一次知道的位置,这里问题是如果我们是第一次启动这个程序,那么上一次的位置是多少呢?我也很纳闷
我们知道在模拟器里面是使用geo fix 122 22这样的命令来模拟当前的位置的,我发现每次模拟位置的时候,第一次启动程序都会出错,而后面启动才获取到了位置,这也许就是那个方法的弊端吧,不知道自己有没有理解错误。
那么在真机上测试,这样行的通吗?和可惜,每次启动真机程序使用GPS来定位的时候,GPS模块已经打开,使用其他定位软件也可以找到当前的位置,可是自己写的那个程序却不能获取到位置。
参考网友的建议如:
有网友写了下面的程序来替代上面的循环:
上面的程序通过不断判断位置是否为空,直到获取到位置为止,他的解释是getLastKnownLocation一次不能成功,需要多次才能获取到,这刚好验证了我的猜想,之前每次第一次启动都不能成功的情况。可是我的那样做了除了一直循环外还是没有得到位置。
直到看到一个国外网页上这样获取位置,才知道是前面的那段服务提供的筛选条件使得我每次获取位置提供者的时候得到的结果都是GPS服务,而这样的方式并不见得好,后来我干脆把服务获取方式写成了直接使用网络方式获取
事实证明问题就出在位置服务获取方式上,改成使用网络方式后可以在真机上获取到当前位置。
那么我写的程序终于可以在真机上跑起来了,贴张图看看,呵呵
上面文字显示没有找到地址是因为网速的问题,本来应该通过地址编码找到相关位置的信息的,这是我做的一个小程序,使用Google Map API开发的,完成了些基本的地图功能,可以在上面做许多扩展的,目前LBS服务很火爆,什么UC乐园,大众点评,网易八方,街旁等,国外还有著名的foursquare,希望与有这方面兴趣的朋友一起学习交流。
下面是从国外网站上摘取的,解释getLastKnownLocation的使用方法:
The call to request update for a location is not blocking, hence it wont wait there. Also the provider in emulator may not have been started.
A possible check could be to see if the settings in it disable gps provider ? then send geo fix.
However, I would use Location Listener, it would be ideal in your case since you need a geo fix to proceed further.Location Listener is Used for receiving notifications from the LocationManager when the location has changed. You can unregister the listener
after first geofix.
Note: It can take some time on device to get current location, and even on device this can return null.
下面是两个国外描述这方面问题的网页:
http://marakana.com/forums/android/examples/42.html
http://stackoverflow.com/questions/1608632/android-locationmanager-getlastknownlocation-returns-null
分享到:
相关推荐
在Android中用textview实现简单的小说分页,字体可调节,未对字符串进行任何操作,分段和控制格式自行对字符串操作
从VFP中用Inet API调用HTTP
Android中用Application类实现全局变量
在VB中用ODBC_API访问数据库.docx
本程序实现了如下功能: (1)VC中通过浏览器控件,加载指定html,在html中用javascript调用...(4)压缩包里含google map API中文参考手册,在javascript中用的到的。 对于想在VC中调用google map 的新手是极大的帮助。
安卓中用到的关于蓝牙API的整理,包括接口、类、方法等
在VC++中用CryptoAPI保证安全数据通信.pdf,论文
Android中用xml配置缩放动画的代码清单.pdf 学习资料 复习资料 教学资源
Android中用xml配置平移动画的代码清单.pdf 学习资料 复习资料 教学资源
android中用到透明背景的小图标,很实用,如果你没有专门的美工的话,这些小图标,会使你的应用程序界面漂亮很多。
Android中用xml配置旋转动画项目的要求说明.pdf 学习资料 复习资料 教学资源
Android中用ContentProvider快速查找通讯录信息的代码清单.pdf 学习资料 复习资料 教学资源
在solr文献检索中用map/reduce
Android中用放大镜效果查看图库中的图的代码清单.pdf 学习资料 复习资料 教学资源
在Android Studio中用GreenDAO这个开源库写的简单代码
浅谈Android中用自定义View实现折线图.pdf
解决android 与网站过程中不能传送中文的问题,用json传中文。
Android中用xml配置旋转动画的代码清单.pdf 学习资料 复习资料 教学资源
在Android中用Fragment实现类似于微信或者QQ中的滑动切换界面的功能,并且给每一个Fragment绑定对应的活动。只是一个简单的样本,本人也才接触Android开发没多久,最近结合自己手头在尝试做的事情,实现的这种需求。...