首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >requestLocationUpdate耗时太长

requestLocationUpdate耗时太长
EN

Stack Overflow用户
提问于 2013-03-11 05:45:42
回答 4查看 3.2K关注 0票数 5

我只有一台设备(HTC HD Deside)用于测试我的应用程序,以及当我想要获取GPS数据时使用

代码语言:javascript
复制
locationManager.requestLocationUpdate(criteria,0,0,this); //critera = "gps"

我的GPS图标出现在通知栏中,但它“闪烁”,好像它意味着我的设备正在寻找和获取GPS数据。因此,我的应用程序在成功地从GPS获取数据(大约1百万到300万!)之前,需要花费太多的“思考”时间。(在图标停止闪烁之前)

因此,我不得不创建一条while指令,如下所示:

代码语言:javascript
复制
do{
    lastLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}while(System.currentTimeMillis() - lastLocation.getTime() > 5000);

多亏了这一点,我肯定会得到最近的位置,但我浪费了太多的时间。

有什么问题吗?是硬件问题吗?我能找到更好的方法来解决这个问题吗?我可以“快速”获取GPS数据吗?:/ (1~5秒)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-11 11:43:01

当您在建筑物或覆盖区域内时,GPS传感器可能需要更多时间。有时,如果你在一座建筑物内,没有可用的GPS信号,它总是闪烁,耗尽电池很多。尝试使用其他提供商。

票数 1
EN

Stack Overflow用户

发布于 2013-03-11 07:35:46

我认为在开发位置感知应用程序之前,你应该先阅读这篇http://developer.android.com/guide/topics/location/strategies.html指南。

GPS传感器需要1到3分钟来获得修复,您不能有一个非常快速的修复(1-5秒,你想要的)。

您应该使用上次已知的位置值,并开始请求位置修复。当你有一个时,你相应地刷新你的内容。

票数 3
EN

Stack Overflow用户

发布于 2013-03-12 15:52:25

您是否已连接到数据网络?

我不知道HTC,但通常情况下,当数据连接可用时,该设备会使用一种称为辅助GPS的东西。而不是扫描地平线上所有可见的卫星,卫星星历是从服务器下载的,修复所需的时间是10-20秒。

也有可能你在室内或低信号区,或者如果你有一个坏的天线。

使用市场上的GPS测试应用程序检查天线是否有问题(通过比较两个设备)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15328056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档