ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 同时有多个位置提供商

2019-07-09 19:23:46  阅读:270  来源: 互联网

标签:android gps location locationmanager


我在定位系统方面遇到了一些问题.
我有一个实现locationlistener的服务.
我希望在可能的情况下使用网络获得最佳位置,如果网络不够准确(精度大于300mt),则需要gps.
问题是这个.每隔5分钟我需要位置(如果可能,准确,其他方面不准确).
我从一开始:

    LocationManager lm=(LocationManager)getApplicationContext().getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);        
    String provider=lm.getBestProvider(criteria, true);
    if(provider!=null){


    lm.requestLocationUpdates( provider,5*60*1000,0,this);

在“onLocationChanged”中我会听取位置,当我得到一个精度大于300mt的位置时,我想更改为gps定位系统.

如果我删除allupdates然后请求gps更新,如下所示:

lm.removeUpdates((android.location.LocationListener) this);
Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);        
    String provider=lm.getBestProvider(criteria, true);
    if(provider!=null){
    lm.requestLocationUpdates( provider,5*60*1000,0,this);
    }

系统停止等待gpsupdate,如果我在一个封闭的房间,它可以保持几个小时没有位置更新,忽略timeupdate指示.
如果gps没有在“x”秒内给出位置,有没有办法告诉locationprovider切换到网络?或者如何理解gps何时没有本地化?

或者如果我同时从2个提供商请求位置更新(网络和gps),可能会出现问题?

有什么建议吗?

解决方法:

我正在写一个特定于你的问题的答案,但后来我意识到我的anser无法与Android开发指南提供的这个excellent resource竞争.它解释了位置听众的方法,原因,利弊.

如果您在Android中走下GPS之路,这是必读的.它回答了您的上述问题以及更多问题.相信我,值得你的时间.

每个SDK都提供了实现有用示例的示例.我很确定这是一个位置示例.

标签:android,gps,location,locationmanager
来源: https://codeday.me/bug/20190709/1416094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有