首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我需要一个安卓定位系统时出错

当我需要一个安卓定位系统时出错
EN

Stack Overflow用户
提问于 2011-08-25 16:17:04
回答 3查看 871关注 0票数 0

我有个问题。在我的应用程序中,我需要用户的当前位置。当我们有一个位置时(当我得到一个位置usig方法locationManager.getLastKnownLocation时),它工作得很好,但是当我重启我的手机,位置消失了(我假设现金是空的),我得到这个日志并强制关闭应用程序按钮。我点击一个按钮,我的应用程序重新启动,然后它工作正常……我现在知道返回null的位置有问题...这是日志:

代码语言:javascript
运行
复制
08-25 10:02:55.000: ERROR/GPS(2006): gen_timer_add_locked
08-25 10:02:55.449: DEBUG/libgps(2006): onUnsol: cmd 0x04 plen 57
08-25 10:02:55.449: DEBUG/libgps(2006): oem_unsol_gps_measurement: num_sv 0
08-25 10:02:55.449: DEBUG/libgps(2006): oem_unsol_gps_measurement: used_in_fix_mask 00000000 
08-25 10:02:55.503: DEBUG/libgps(2006): request_location_fix_callback: session status 1
08-25 10:02:55.503: DEBUG/libgps(2006): request_location_fix_callback: GPS session is ongoing.
08-25 10:02:55.503: ERROR/GPS(2006): gen_timer_add_locked
08-25 10:02:56.006: DEBUG/libgps(2006): request_location_fix_callback: session status 1
08-25 10:02:56.006: DEBUG/libgps(2006): request_location_fix_callback: GPS session is ongoing.
08-25 10:02:56.006: ERROR/GPS(2006): gen_timer_add_locked
08-25 10:02:56.449: DEBUG/libgps(2006): onUnsol: cmd 0x04 plen 57
08-25 10:02:56.449: DEBUG/libgps(2006): oem_unsol_gps_measurement: num_sv 0
08-25 10:02:56.449: DEBUG/libgps(2006): oem_unsol_gps_measurement: used_in_fix_mask 00000000 
08-25 10:02:56.505: DEBUG/libgps(2006): request_location_fix_callback: session status 1
08-25 10:02:56.505: DEBUG/libgps(2006): request_location_fix_callback: GPS session is ongoing.
08-25 10:02:56.505: ERROR/GPS(2006): gen_timer_add_locked
08-25 10:02:57.009: DEBUG/libgps(2006): request_location_fix_callback: session status 1
08-25 10:02:57.009: DEBUG/libgps(2006): request_location_fix_callback: GPS session is ongoing.
08-25 10:02:57.009: ERROR/GPS(2006): gen_timer_add_locked
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-26 20:11:49

我设法解决了这个问题。我创建了没有按钮的AlertDialog并启动了requestLocationUpdates。在locationListener,当位置改变时,我取消了AlertDialog,这解决了我的问题:D谢谢jainal和Torsten……

票数 0
EN

Stack Overflow用户

发布于 2011-08-25 16:30:21

当你重启手机时,所有的非持久数据都会被清除,就像variable.If一样,你想保存你的位置,然后你应该使用数据库/共享首选项。此外,您还可以获取null location.So,您应该不断检查以处理。

编辑过的

你可以使用Timer类。

试着这样做:

代码语言:javascript
运行
复制
 Timer timer1;
  LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
  lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
  timer1=new Timer();
  timer1.schedule(new GetLastLocation(), 20000);

以下代码将在20秒后执行。

代码语言:javascript
运行
复制
class GetLastLocation extends TimerTask {
        @Override
        public void run() {
             timer1.cancel();
             lm.removeUpdates(locationListener)
             Location loc=lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        }
}
票数 0
EN

Stack Overflow用户

发布于 2011-08-25 16:56:03

看看A Deep Dive Into Location ,你就会知道很多关于如何定位的信息。

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

https://stackoverflow.com/questions/7187085

复制
相关文章

相似问题

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